最近对我们的文件服务器进行了一次临时文件扫描,~$附加到名称开头产生了近 1,000 个结果。
这些文件的“上次修改”日期可以追溯到 2003 年(因此它们现在通常都是多余的,可以安全删除)。
我需要一个脚本来识别和删除任何以“~$”开头的文件,然后我可以安排该脚本每周在服务器上运行一次,以频繁自动清除这些临时文件。
答案1
对于特定目录,这将递归删除所有名称以 ~$ 开头的文件:
find /path/to/directory -type f -name '~$*' -exec rm '{}' \;
要将其限制在特定目录中而不在其子目录中,请使用 maxdepth:
find /path/to/directory -maxdepth 1 -type f -name '~$*' -exec rm '{}' \;
将积分参数更改为-maxdepth
取决于要搜索文件的目录的预期级别。
另一种更简单的方法是使用 globs,但这不是一个好主意,因为它会尝试触碰与模式匹配的目录。它仍然不会删除它们,但您必须担心错误消息。您可以使用-f
选项或发送错误输出,/dev/null
但对于方法来说,这已经很麻烦了:
rm '/path/to/directory/~$'*