我有一个疑问。我正在做一个与Linux系统还原概念相关的项目。在那里,我计划在失败的情况下执行应用程序智能回滚。有没有办法找出系统中的应用程序使用的所有文件是什么?
好的。我会说得更清楚一点。例如,考虑firefox应用程序。当它被安装时,许多文件被从.deb文件写入到/etc,/usr,/opt等文件夹中。在windows中,所有文件都安装在程序文件下的一个文件夹中,而在linux中没有。那么有没有办法找出属于某个软件的文件呢?
谢谢。
发布于 2010-02-16 21:30:51
好吧,这可以涵盖几件事。
如果您的意思是,您的应用程序的安装提供了哪些文件?那么答案是,使用适当的包管理,以rpm/deb/...的形式提供您的软件。不管是什么包,和unstallation都会处理剩下的事情。
如果您的意思是,我们的应用程序引用了哪些库?然后您可以使用ldd,这将告诉您在执行此应用程序时使用了哪些动态库。
如果您的意思是,我的应用程序正在使用哪些文件?然后查看lsof (lsof =列出打开的文件)(或者ls /proc//fd/)的输出,这将显示应用程序打开的所有文件描述符(文件、套接字、管道、tty等)
或者,您可以使用上述所有功能。
您无法跟踪的一件事(除非您自己记录)是您的应用程序在其生命周期内创建了哪些文件。
发布于 2010-02-16 21:31:35
要确定随应用程序一起安装的所有文件,取决于包管理器。我接触过的所有应用程序(apt、pacman)都具有这种功能。
要确定应用程序当前打开的所有文件,请使用lsof。
发布于 2010-02-16 21:32:55
嗯,那要看情况...
大多数Linux系统都有某种类型的包管理软件,比如debian和ubuntu中的aptitude。在那里,您可以了解属于某个数据包的信息。你也许可以利用这些信息。但这并不包括在应用程序运行时创建的文件。
https://stackoverflow.com/questions/2273139
复制相似问题