在linux系统中,使用dpkg -l和rpm -ql命令可分别查看debian系和red hat系系统中已安装软件包所包含的文件。1. dpkg -l用于debian/ubuntu系统,命令格式为dpkg -l 包名,输出包括所有属于该包的文件路径;2. rpm -ql用于centos/fedora/rhel系统,命令格式为rpm -ql 包名,输出同样为文件路径列表;两者均不支持未安装的包,且均可结合grep进行包名查找;若需反向查询某个文件所属的包,则可使用dpkg -s 文件路径或rpm -qf 文件路径。

在Linux系统中,如果你想知道某个已安装的软件包到底包含了哪些文件,有两个常用的命令可以实现这个目的:dpkg -L(用于Debian系系统)和rpm -ql(用于Red Hat系系统)。它们虽然功能相似,但在使用方式和适用场景上有些差异。下面我们就来具体看看这两个命令怎么用、有什么区别。

1. dpkg -L:查看Debian系系统中软件包包含的文件
在Ubuntu、Debian等基于Debian的Linux发行版中,使用的是.deb格式的软件包。要查看某个已安装的deb包包含哪些文件,可以使用:

dpkg -L 包名
比如你想知道vim都装了哪些文件,可以运行:
dpkg -L vim
输出结果会列出所有属于这个包的文件路径,包括可执行文件、配置文件、文档、依赖链接等。

小贴士:
- 如果你不确定包名,可以用
dpkg -l | grep 关键词先查找。 - 这个命令只适用于已经安装的包,未安装的无法查看。
2. rpm -ql:查看Red Hat系系统中软件包包含的文件
在CentOS、Fedora、RHEL等Red Hat系列系统中,使用的是.rpm格式的软件包。查看一个已安装的rpm包包含哪些文件,可以使用:
rpm -ql 包名
例如查看httpd(Apache服务)包含的文件:
rpm -ql httpd
输出内容也是一个个文件路径,结构清晰。
注意点:
-
-q表示查询,-l表示列出文件,两个参数合起来就是“列出查询到的包中的文件”。 - 和dpkg一样,也只能查已安装的包。
3. 两者对比与常见问题
| 特性 | dpkg -L | rpm -ql |
|---|---|---|
| 使用系统 | Debian/Ubuntu | CentOS/Fedora/RHEL |
| 命令格式 | dpkg -L 包名 |
rpm -ql 包名 |
| 是否支持未安装包 | ❌ 不支持 | ❌ 不支持 |
| 输出格式 | 简洁列表 | 简洁列表 |
| 查询包名方式 | dpkg -l \| grep ... |
rpm -qa \| grep ... |
额外提示:
- 如果你只是想确认某个文件属于哪个包,也可以反过来查:
- Debian系:
dpkg -S 文件路径 - Red Hat系:
rpm -qf 文件路径
- Debian系:
基本上就这些。两种命令都很实用,关键是根据你的系统类型选择合适的工具。用多了你会发现,虽然写法不同,但逻辑是一样的——都是为了让你快速了解一个包到底“装了什么”。










