确定某个命令、某个启动器图标来自哪个软件包的方法

1 原理

Linux 中的每个命令都对应一个可执行文件,而主菜单中的每个图标,大多对应于 /usr/share/applications/ 下的一个 .desktop 文件。

那么,只要我们能确定某个可执行文件,或某个 .desktop 隶属于哪个软件包,就可以顺藤摸瓜,知道这个命令(或菜单中的某个图标)隶属于哪个软件包了。

2 准备工作

首先需要安装 apt-file,它可以用来查询某个软件隶属于哪个软件包。

sudo apt install apt-file

安装好后,要刷新一下 apt-file 的缓存数据库,以便进行查询:

sudo apt-file update

3 查询

3.1 查询某条命令

这里我们以查询 find 命令隶属于哪个软件包为例。

(1) 使用 which [要查询的命令],查询该命令对应的可执行文件的路径。比如:

which find

可得到如下输出:

/usr/bin/find

(2) 使用 apt-file [可执行文件路径],查询该可执行文件隶属于哪个软件包。比如,

apt-file search /usr/bin/find

:information_source: 提示

apt-file 仅执行查询操作时,无需使用 Root 权限。

可得到如下输出:

...
findent: /usr/bin/findent
findimagedupes: /usr/bin/findimagedupes
findutils: /usr/bin/find
fontforge-extras: /usr/bin/findtable
...

:warning: 注意

apt-file 只能进行模糊搜索,因此搜索结果可能会很多。

可以看到,其中有如下结果:

findutils: /usr/bin/find

这意味着,find 命令来自 findutils 这个软件包。

3.2 查询主菜单中的图标

打开文件管理器,进入

/usr/share/applications

可以看到,这里有很多启动器。

然后,打开终端,输入如下内容(:warning: 但不要按 Enter)

apt-file search[空格]

再将文件管理器中,要查询的图标拖动到终端的光标后,最后按 Enter,即可看到查询结果。

比如,我将 “Debian 参考手册”[1] 这个图标拖进来,

终端中的命令变成:

执行后,得到的输出是

debian-reference-common: /usr/share/applications/debian-reference-common.desktop

表明这个图标是软件包 debian-reference-common 创建的。


  1. 对应的路径是 /usr/share/applications/debian-reference-common.desktop ↩︎

1 个赞