![如何列出特定rpm包中包含的所有命令?](https://linux22.com/image/75114/%E5%A6%82%E4%BD%95%E5%88%97%E5%87%BA%E7%89%B9%E5%AE%9Arpm%E5%8C%85%E4%B8%AD%E5%8C%85%E5%90%AB%E7%9A%84%E6%89%80%E6%9C%89%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我找到了这个确切的问题对于 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