如何删除在一定时间内未访问过的文件夹中的所有文件?


14

我想执行每晚一次的cron作业,以删除一个星期或更长时间未访问的文件夹中的所有文件。在bash中最有效的方法是什么?


2
find可以根据时间进行过滤。时间的“正确性” noatime至少取决于配置(请参阅参考资料)。

Answers:


20

您需要该find工具

find folder -depth -type f -atime +7 -delete

(这将删除所有文件(仅普通的人在给定的文件夹,没有管道,特种设备,目录,符号链接)和所有子目录(递归),其中最后访问时间长于 7天前的。)


6
您可能要在其中添加-type f以确保它仅删除文件,而不是整个目录。
Shadur

3

您可能要检查tmpwatch可以放入cron作业中的内容。无需自己动手做find。在RHEL上,它在tmpwatchRPM中。


这绝对是更优雅的解决方案,但我更喜欢的可移植性find
bloudermilk 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.