如何删除未打开的文件?

时间:2015-09-09 06:07:22

标签: linux ubuntu rm

假设我的Ubuntu-Linux目录中有三个文件。其中一个是在音乐播放器中打开的,但是其他两个在任何应用程序中都没有打开,并且没有使用任何进程。

我想删除这两个文件。换句话说,我想检测任何进程未使用的文件,然后删除它们。

我试过了:

rm !(lsof | grep "thePath")

但失败了。此处lsof存在问题。

有什么办法吗?

1 个答案:

答案 0 :(得分:4)

你的语法非常错误。在shell中,与许多其他编程语言不同,在括号中放置一个命令(就好像它是一个函数调用)不会产生结果。

相反,你需要这样的东西:

for f in *; do
    fuser -s "$f" || rm "$f"
done

我首选fuser超过lsof因为它允许您查询单个文件。