如何查找与软件相关的所有文件?

Pou*_*uya 4 files find

我不确定是否可能,但如果可能,我如何找到与软件相关的所有文件?例如,有没有办法找到所有gedit需要和使用的文件?

此类命令/技术是否会收集诸如/usr/share/gtksourceview-3.0/styles/oblivion.xml并非专用于某个软件或由其他软件拥有的文件?

ger*_*ijk 6

要列出属于包的文件,请运行

$ dpkg -L packagename
Run Code Online (Sandbox Code Playgroud)

注意:通常不包含配置文件。

要查找文件所属的包,请运行

$ dpkg -S /path/to/file
Run Code Online (Sandbox Code Playgroud)


chr*_*tis 4

恐怕这是一个不小的问题。一些可能对您有帮助的方法:

  • 您可以通过查看 来找到特定包安装的所有文件/var/lib/dpkg/info/gedit.list

  • gedit您可以通过运行找到依赖的所有其他包apt-cache depends geditgedit(反之,你可以找到所有依赖于的包apt-cache rdepends gedit)。请记住,这些函数不是递归的 - 因为gedit要成功运行需要大量的系统资源 - 例如,C 库、X 图形系统、dbus 系统消息总线......

  • 您可以通过运行来找出可执行文件在运行时需要哪些库文件ldd $(which gedit)。(在本例中,which gedit当您运行时返回实际可执行文件运行的路径)。gedit/usr/bin/gedit

  • 您可以通过运行来找出给定进程(当前)打开了哪些文件lsof -c gedit。(程序可能会在启动时将文件(例如图标)加载到内存中并关闭其文件描述符,这些文件描述符不会显示在这样的列表中)。