查找并删除所有未在某段时间内修改的已关闭文件

时间:2015-06-11 06:36:59

标签: linux find filesystems

我正在linux中构建一个脚本,它将从光盘中删除操作系统当前未使用的文件。我想使用find命令,所以我可以为我发现的所有未打开的文件执行rm。 到目前为止,我尝试了这个命令没有成功:

find /folderToSearch/ -type f | while read filename ; do /sbin/fuser -s $filename || echo $filename ; done

我在某个网站上发现了这个命令,它打算打印所有未使用过的文件。虽然当我同时打开'vi'命令时发现它仍然打印文件名。

1 个答案:

答案 0 :(得分:0)

要获取打开文件列表,可以使用lsof命令。从目录中获取find命令中的所有文件列表并将其全部删除。

1)。获取目录中打开文件的列表。

lsof /folderToSearch |awk '{print $NF}'|sed -e '1 d' |sort |uniq >/tmp/lsof

2)。获取目录中的文件列表。

find /folderToSearch -type f -print >/tmp/find

3)。从/tmp/lsof文件中删除/tmp/find列表,然后将其删除。

grep -v  -w -f /tmp/lsof /tmp/find |xargs rm -f