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

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

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

这样的命令/技术是否会收集某些文件,例如/usr/share/gtksourceview-3.0/styles/oblivion.xml哪些文件不是专用于某个特定的软件或者属于其他软件?

答案1

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

$ dpkg -L packagename

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

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

$ dpkg -S /path/to/file

答案2

恐怕这不是一个简单问题。以下方法可能对您有所帮助:

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

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

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

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

相关内容