我知道有一个which
命令可以回显二进制文件的全名(例如which sh
)。但是,我相当确定有一个命令可以回显提供特定二进制文件的包。有这样的命令吗?如果有,它是什么?我希望能够运行这个:
commandName ls
并得到
coreutils
例如。
答案1
我猜你正在寻找dpkg -S
命令(另见dpkg 的常用选项)。
答案2
如果你想在尚未安装的包中查找文件,请使用apt 文件
apt-get install -y apt-file
apt-file update
然后,找到一些东西:
apt-file search /usr/bin/file
或者
apt-find search file
其中“文件”是您要搜索的名称。
如果你不想在每个 Debian 系统上都进行这样的操作,你可以使用这个脚本:
#!/bin/bash
which apt-get >/dev/null || { echo apt-get not found >&2; exit 1; }
which apt-file >/dev/null || { apt-get install -y apt-file; apt-file update; }
unset i; IFS=$'\x0a'; select i in $( apt-file search "/$@" ); do
test -n "$i" || break; apt-get install "${i%% *}"; done
我当时只是把它匆匆忙忙地做了一下,但似乎效果不错。
注意:“dpkg -S”只能找到您已经安装的东西。