我如何知道软件包中安装了哪些命令?


11

如何获得特定软件包已安装的命令列表?

例如,如果我安装Chromium,现在应该输入什么?或者,如果我安装了moreutils,怎么知道已经安装了哪些命令?

Answers:


14

简短答案:

dpkg -L packagename | grep 'bin/'

长答案:

要获取软件包中安装的所有文件的列表(例如moreutils),请运行以下命令:

dpkg -L moreutils

现在,我们需要做的就是过滤掉路径中的可执行文件。在一般情况下,命令安装/bin/sbin/usr/bin/usr/sbin,所以我们可以简单的匹配模式:

dpkg -L moreutils | grep -e '^/bin/' -e '^/sbin/' -e '^/usr/bin/' -e '^/usr/sbin/'

如果您想要更容易记忆但不完全准确的内容,只需使用以下方法过滤掉行bin/

$ dpkg -L moreutils | grep 'bin/'
/usr/bin/isutf8
/usr/bin/pee
/usr/bin/errno
/usr/bin/vidir
/usr/bin/zrun
/usr/bin/lckdo
/usr/bin/ifne
/usr/bin/mispipe
/usr/bin/parallel
/usr/bin/sponge
/usr/bin/ts
/usr/bin/ifdata
/usr/bin/vipe
/usr/bin/chronic
/usr/bin/combine

所以,在这个例子中,我发现这些命令:isutf8peeerrno等。


有些软件包不会在路径中安装命令,但会为GUI应用程序安装图标。如果要查找启动应用程序的命令,则需要找到已安装的.desktop文件,并查看以开头的行Exec=。例如:

$ dpkg -L worldofgoo | grep '\.desktop$'
/usr/share/applications/WorldOfGoo.desktop

$ grep '^Exec=' /usr/share/applications/WorldOfGoo.desktop 
Exec=/opt/WorldOfGoo/WorldOfGoo

因此,在此示例中,我发现我应该/opt/WorldOfGoo/WorldOfGoo从终端启动Run Of Goo。


1
grep部分可以稍微基于这样的理念,所有的图案与最终合并bin/。(而且我无法抗拒修剪路径名。)dpkg -L moreutils | grep -e '/[s]*bin/' | sed -r 's/.*bin\/(.*)$/\1/'
lgarzo

@lgarzo,您可能在最近6年中已经学到了这一点,但是您可以省去grep,就像和dpkg -L chromium-browser | sed -rn 's/.*bin\/(.*)$/\1/p'一样,-n并且p只打印更改后的行。节省您60/1000秒!
pbhj
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.