Answers:
你可以用这个命令
find /path/to/files* -mtime +365 -exec rm {} \;
一些解释
/path/to/files*
是文件的路径。
-mtime
用于指定文件存在的天数。+365将查找超过365天(即一年)的文件
-exec
允许您传递诸如rm之类的命令。
编辑感谢@Oli注意->您可以通过以下方式实现:
find /path/to/files* -mtime +365 -delete
"{}"
进入{}
它传递给前find
摆在首位,然后find
替代它引用。{}
建议的情况下,{
和}
自己有时可以通过外壳经过特殊处理-这有什么可处理空格,通常{}
不必用引号引起来,我想不到任何情况,至少在从Bourne样式的shell调用find的时候,当{}
里面什么都没有,本身作为参数出现时, (必须引用。可以吗?)
find
可以自行转义,但是编写脚本时养成良好的习惯。没伤
find
不处理转义,"{}"
将仍然具有与-相同的效果,只是{}
两者都不起作用,而不是两者都起作用。由于find的任何特殊功能,所以它们{}
和"{}"
行为相同不是,也不能是。将Shell扩展的内容与其他程序扩展的内容混淆是一个坏习惯。我们偶尔都会犯该错误,但这仍然是一个错误-并非最佳实践。(有人可能还会引用{}
以帮助人们看到这不是括号扩展的模式,但这与单词拆分无关。)
{}
in-exec
(因此显示为-exec rm "{}" \;
)。这样可以确保正确处理空格...并且您可以只使用-delete
函数代替-exec
。