我尝试了多种编写此脚本的方法,并且我自己执行脚本,因此 crontab 不会不起作用。这些是我尝试过的示例:
find /home/backups -mtime +1 -exec rm {} \;
find /home/backups/* -mtime +1 -exec rm {} \;
find /home/backups/ -mtime +1 -exec rm {} \;
我需要每天删除这些文件,但它似乎不起作用。运行ls -ld /home/backups
返回一个长文件列表 - 这是前两个文件
-rw-r--r-- 1 root root 8284346 Jan 12 13:00 arksave-2016-01-12--01-00-01.tar.gz
-rw-r--r-- 1 root root 8295428 Jan 12 13:15 arksave-2016-01-12--01-15-01.tar.gz
请注意,已经超过一天了,这是最后两个文件
-rw-r--r-- 1 root 38016124 Jan 13 12:30 arksave-2016-01-13--12-30-01.tar.gz
-rw-r--r-- 1 root 38016163 Jan 13 12:45 arksave-2016-01-13--12-45-01.tar.gz
答案1
引用“TNW”
当 find 计算出上次访问文件是在多少个 24 小时周期之前,任何小数部分都会被忽略,因此为了匹配 -atime +1,文件必须至少在两天前被访问过。
因此,要查找仅一天前的文件,您可以使用以下任一片段
find /home/backups/* -mtime +0
或者
find . -mmin +$((60*24))