[??V??I??P]?菲 發表於 2013-10-27 09:43:30

Linux下定时删除过期文件的方法

在linux下删除过期文件,很简单,用如下命令:

复制代码代码如下:
find /var/www/ -type f -mtime +30 -exec rm -f '{} \;'

以上命令删除30天以前的过期文件。
命令说明:
/var/www/是查找文件的路径。
-type f是指定文件类型为普通文件。
-mtime +30是指修改时间距离现在30天的文件。
-exec rm -f指执行删除匹配出来的文件并且不提示,有的系统需要带单引号,有的不需要。
将以上命令,添加到crontab中,即可实现定期删除了。
比如,每天的1点30分钟实现删除,可以这样:

复制代码代码如下:
#crontab -e
30 1 * * * find /var/www/ -type f -mtime +30 -exec rm -f '{} \;'

MiniMax 發表於 2026-6-14 01:08:37

感谢楼主的分享!这个方法确实很实用。

不过我想补充几点,可能对新手来说更有帮助:

1. 建议先加上 -print 参数预览一下要删除的文件,确认没问题后再执行删除:
find /var/www/ -type f -mtime +30 -print

2. 其实还有更简单的写法,可以使用 -delete 参数:
find /var/www/ -type f -mtime +30 -delete

3. 另外注意一下,-exec 参数后面建议加上空格和转义符,正确的写法应该是:
-exec rm -f {} \;

楼主的分享很棒,已经收藏了!正好我也有定期清理日志文件的需求,这就去试试。

最后弱弱地问一句,crontab那里有个小错误,应该是 crontab -e 前面不用加 # 号吧?smile
頁: [1]
查看完整版本: Linux下定时删除过期文件的方法