如何查找与包关联的命令?

如何查找与包关联的命令?

有时我发现自己安装了一个软件包,然后尝试使用相同的名称运行命令,喜欢与geoip-bin包裹:

$ sudo apt install geoip-bin

[...]

$ geoip-bin
geoip-bin: command not found

如何找到与给定包关联的所有命令?

答案1

dpkg -L

-L, --listfiles package-name列出安装到您的系统的文件包裹名字

两种选择:

  • 通常只起作用:(dpkg -L byobu | egrep '/bin/|/sbin/'或者即使grep bin你不介意得到一些误报)。
  • 或者

    dpkg -L byobu | xargs which
    
  • 或者与一些 bash 魔法

    for f in $(dpkg -L geoip-bin) ; do test -x $f -a ! -d $f && echo $f ; done
    

    您可以选择| grep "/usr/bin/"在末尾添加以列出该特定文件夹上的可执行文件。

geoiplookup是 的命令geoip-bin。我还发现这对于了解任何包的其他命令非常有用。

答案2

您可以使用命令dpkg

dpkg -S $(which <command>)

例如:

$ dpkg -S $(which cp)
coreutils: /bin/cp

该命令cp是包的一部分coreutils

要查看与coreutils包关联的所有命令:

$dpkg -s coreutils

Specifically, this package includes:

 arch base64 basename cat chcon chgrp chmod chown chroot cksum comm cp
 csplit cut date dd df dir dircolors dirname du echo env expand expr
 factor false flock fmt fold groups head hostid id install join link ln
 logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup nproc numfmt
 od paste pathchk pinky pr printenv printf ptx pwd readlink realpath rm
 rmdir runcon sha*sum seq shred sleep sort split stat stty sum sync tac
 tail tee test timeout touch tr true truncate tsort tty uname unexpand
 uniq unlink users vdir wc who whoami yes

相关内容