如何在ubuntu中获取已安装软件的标签?

caf*_*991 5 software-center command-line scripts

我可以使用 dpkg 命令检索软件,但是否有命令可以获取软件的关联类别。例如,如果我安装了 Firefox,我可以以某种方式检索它的标签,上面写着浏览器,或者可能是一个更抽象的术语,比如互联网工具。

Syl*_*eau 5

您可以使用dpkg-query并格式化输出以获取二进制名称及其 Debian部分

dpkg-query -W -f='${binary:Package} (${Section})\n' firefox
Run Code Online (Sandbox Code Playgroud)

对于 firefox,它只会返回firefox (web)(查询packages.ubuntu.com时使用的相同部分)

当然你也可以不带包名使用同样的命令:

dpkg-query -W -f='${binary:Package} (${Section})\n'
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅dpkg-query 手册页


要获得软件中心中显示的类别,您需要像这样解析 /usr/share/applications 中的文件:

$ grep Categories /usr/share/applications/* | grep firefox
/usr/share/applications/firefox.desktop:Categories=GNOME;GTK;Network;WebBrowser;
Run Code Online (Sandbox Code Playgroud)

要仅获取最具体的适用类别,您可以尝试以下操作:

$ grep Categories /usr/share/applications/firefox.desktop | awk -F';' '{print $(NF-1)}'
WebBrowser
Run Code Online (Sandbox Code Playgroud)