用 find 清理旧文件,别写错 -mtime
清理七天前的临时文件,写成 find /tmp -mtime 7 -delete,结果把当天的也删了一部分——-mtime 7 是“正好 7 天”,不是“7 天以前”。
正确写法是 -mtime +7。
另外几个细节:
-delete隐含-depth,但遇到非空目录还是会失败,加-type f明确只删文件。- 先
-print看一眼要删什么,确认后再换成-delete,这是唯一可靠的 dry run。 -mmin按分钟,-atime按访问时间,但atime在relatime挂载下不可靠。find ... -delete不做二次确认,路径里一个变量为空就可能删根目录,务必写绝对路径并测试。
find /var/tmp -type f -mtime +7 -print