Technology Sharing

  • 首页
  • 资料分享
  • 在线工具
    • 随机密码生成器
  • 介绍
  • RSS
  • privacy
  • 云产品推广
    • 腾讯云
    • 阿里云
Share IT knowledge
  1. 首页
  2. linux
  3. 正文

linux下查看某个文件或命令属于哪个包

2022年8月18日 254点热度 0人点赞 0条评论

查看某个文件属于哪个包

系统:centos/redhat

查询/usr/bin/ping对应的软件包
#yum provides /usr/bin/ping
或
#rpm -qf  /usr/bin/ping

系统:ubuntu及衍生版

查询/usr/bin/nslookup对应的软件包
#dpkg -S /usr/bin/nslookup
或
#dpkg-query -S /usr/bin/nslookup

查询时或许有以下报错:

#dpkg -S 文件名
dpkg-query: no path found matching pattern

可能原因是:文件名是一个符号链接

比如需要查询 nc 的包名称:

#which nc
/usr/bin/nc
#dpkg -S /usr/bin/nc
dpkg-query: no path found matching pattern /usr/bin/nc

其中 which nc 查询出来的是符号链接

解决办法:

方法1: 通过 ls 逐步找到对应的目标文件。

#which nc
/usr/bin/nc
#ll /usr/bin/nc
lrwxrwxrwx 1 root root 20 Aug 22 2020 /usr/bin/nc -> /etc/alternatives/nc*
#ll /etc/alternatives/nc
lrwxrwxrwx 1 root root 15 Aug 22 2020 /etc/alternatives/nc -> /bin/nc.openbsd*
#dpkg -S /bin/nc.openbsd
netcat-openbsd: /bin/nc.openbsd

方法2: 通过 readlink 找到目标文件
但是直接使用有时也是会出现问题,比如:

#readlink -f $(which nc)
/usr/bin/nc.openbsd
#dpkg -S /usr/bin/nc.openbsd
dpkg-query: no path found matching pattern /usr/bin/nc.openbsd

这是因为 /bin 是指向 /usr/bin/ 的符号链接。

#ll /bin
lrwxrwxrwx 1 root root 7 Aug 28 2020 /bin -> usr/bin/

虽然有些文件是安装在于/bin 目录下,但是最终解析还是会解析到符号链接所指向的路径,即 /usr/bin 目录下。
因此,需要查询 /bin/nc.openbsd,而不是 /usr/bin/nc.openbsd

#dpkg -S /bin/nc.openbsd
netcat-openbsd: /bin/nc.openbsd

查看某个命令属于哪个包

系统:centos/redhat

#yum provides  命令名

系统:ubuntu及衍生版

#aptitude install apt-file
#apt-file update          <---更新索引,查询之前必做

比如要查询mkdosfs所属的软件包

#apt-file search mkdosfs | egrep  mkdosfs$    <---查找以mkdosfs结尾的文件,缩小搜索范围
dosfstools: /sbin/mkdosfs

该命令与dpkg -S的作用相似,不同的是dpkg -S只能查询系统已经安装过的,apt-file可以在软件源中进行查询

打赏微海报分享
标签: 暂无
最后更新:2022年8月18日

nico

Linux运维工程师 软考网络工程师 && 软考信息安全工程师

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

nico

Linux运维工程师
软考网络工程师 && 软考信息安全工程师

最新 热点 随机
最新 热点 随机
linux部署JDK环境 [Solved] MariaDB import issue: Error at line 1: Unknown command '\-'. Could not retrieve mirrorlist http://mirrorlist.centos.org/ CentOS 7 Kubernetes如何删除卡在“Terminating”状态的命名空间 解决GitLab Runner签名无效 如何禁用 Ubuntu "Daemons using outdated libraries" 弹出窗口
Docker版本介绍 curl 获取状态码和跳转链接 Python操作Excel (xlsxwriter模块) [SOLVED] MySQL.. ERROR! The server quit without updating PID file Ubuntu 和 Debian 中使用apt/apt-get单独升级某个软件包 Centos7 yum安装nginx
最近评论
woodcockkienzlelsj8o9+73s48g9rr3m0@gmail.com 发布于 10 个月前(07月17日) necessitatibus corporis et odit nam quo harum et c...
RonaldG 发布于 10 个月前(07月07日) Very interesting topic, thank you for putting up.&...
小黑 发布于 1 年前(12月28日) 不错
nico 发布于 2 年前(02月09日) 嘻嘻嘻!!!
Bruse 发布于 2 年前(02月09日) 我来啦!!!
nico 发布于 2 年前(12月10日) 方便查询
Justin 发布于 2 年前(12月10日) 写的很好,谢谢分享!我 Mark 一下~
nico 发布于 3 年前(11月18日) 主题的原因吧
Justin 发布于 3 年前(09月22日) 这篇文章的质量很高呀!写得很详细~ 话说你的文章是隐藏了发布时间吗?
Justin 发布于 3 年前(08月27日) 好家伙,这标题乍一看还以为你打算进军英文技术写作领域了🤓

COPYRIGHT © 2023 Technology Sharing. ALL RIGHTS RESERVED.

备案图标 皖公网安备34132402000202 皖ICP备2023004851号-1