![需要一个脚本来删除所有以 ~$ 开头的临时文件](https://linux22.com/image/1374584/%E9%9C%80%E8%A6%81%E4%B8%80%E4%B8%AA%E8%84%9A%E6%9C%AC%E6%9D%A5%E5%88%A0%E9%99%A4%E6%89%80%E6%9C%89%E4%BB%A5%20~%24%20%E5%BC%80%E5%A4%B4%E7%9A%84%E4%B8%B4%E6%97%B6%E6%96%87%E4%BB%B6.png)
最近对我们的文件服务器进行了一次临时文件扫描,~$附加到名称开头产生了近 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/~$'*