我如何知道哪些程序使用特定文件?

我如何知道哪些程序使用特定文件?

我在我的主目录中发现了一个名为 kernel-4.2.5 的文件,我想删除它,但我不知道这会造成什么危害。有没有办法知道该文件是否正在被使用,因为我的内核版本是 4.4.0-31-generic。

此外,如何找出系统上所有不再使用的已安装的程序?

答案1

您可以使用命令找出哪些软件包包含特定文件(或目录)

dpkg -S /PATH/TO/FILE_OR_DIRECTORY

这仅适用于已安装的软件包以及软件包中包含的文件/目录。它无法识别由安装脚本或稍后由正在运行的应用程序创建的文件/目录。


要确定文件是否目前已开放任何应用程序都可以使用命令

lsof /PATH/TO/FILE_OR_DIRECTORY

没有输出意味着该文件当前未被任何程序打开。否则,对于当前正在使用该文件的应用程序,您将获得一行输出。


如果两个命令都没有输出,因此表明该文件不需要,大概您可以放心地删除它。当然,我不能保证它不再需要用于任何您想要的东西,但我认为您的机会相当大。

无论如何,它实际上不可能是一个与系统相关的文件,因为它位于您的主目录中,但不知道它是如何到达那里的。

最安全的做法是将其移动到任何地方作为备份保存几个月左右,直到您 100% 确定不再需要它为止。

相关内容