查找并删除所有在一段时间内未修改的已关闭文件
find and remove all closed files that are not modified in some-time
我正在 linux 中构建一个脚本,它将从光盘中删除 OS 当前未使用的文件。我想使用 find 命令,以便我可以对我发现的所有未打开的文件执行 rm。
到目前为止我试过这个命令没有成功:
find /folderToSearch/ -type f | while read filename ; do /sbin/fuser -s $filename || echo $filename ; done
我在某些网站上发现了这个命令,它应该打印所有未使用的文件。虽然当我同时使用 'vi' 命令打开时发现它仍在打印文件名。
要获取打开文件的列表,您可以使用 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/find
文件中删除 /tmp/lsof
列表,然后删除它们。
grep -v -w -f /tmp/lsof /tmp/find |xargs rm -f
我正在 linux 中构建一个脚本,它将从光盘中删除 OS 当前未使用的文件。我想使用 find 命令,以便我可以对我发现的所有未打开的文件执行 rm。 到目前为止我试过这个命令没有成功:
find /folderToSearch/ -type f | while read filename ; do /sbin/fuser -s $filename || echo $filename ; done
我在某些网站上发现了这个命令,它应该打印所有未使用的文件。虽然当我同时使用 'vi' 命令打开时发现它仍在打印文件名。
要获取打开文件的列表,您可以使用 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/find
文件中删除 /tmp/lsof
列表,然后删除它们。
grep -v -w -f /tmp/lsof /tmp/find |xargs rm -f