如何列出特定rpm包中包含的所有命令?

如何列出特定rpm包中包含的所有命令?

我找到了这个确切的问题对于 Debian这里:列出特定 Debian 软件包的所有命令

但似乎没有人对 RHEL/CentOS(或 OpenSUSE)提出过这样的要求。

例如,我可以运行rpm -qf $(which dig)来找出dig来自bind-utils包的内容。我可以运行yum -C info bind-utils来快速查看该包上的数据...但我如何才能看到包中包含的其他命令bind-utils

理想情况下,解决方案应该独立于我的$PATH变量,因为即使路径损坏或非系统用户路径(例如不包括/sbin),我可能只是想知道从给定包安装了哪些命令。

答案1

哈,我已经找到了;正如rpm -ql bind-utils杰夫·夏勒在评论中指出的那样。

从列表中过滤掉非可执行文件的稍微完善的版本是:

for file in $(rpm -ql packagename) ; do test -x $file && test -f $file && echo $file ; done

答案2

使用下面的一个衬垫命令来列出包的命令:

 rpm -ql systemd | grep -w 'bin\|sbin' | awk -F '/' '{print $NF}' | xargs man head | grep ' - ' | grep -vi 'No manual' 2> /dev/null 

相关内容