我想删除那些超过59分钟的旧文件。我现在有这个:
find /tmp -daystart -maxdepth 1 -mmin +59 -type f -name "*.*" -exec rm -f {} \;
这个方法不起作用,而且似乎会删除所有文件。我已经测试了几次,我认为问题与 daystart
有关。
我已经阅读了man手册,它似乎基于一天的开始计算时间,而不是从24小时之前开始计算。如果是这样,那么我如何准确地删除早于59分钟的文件?我需要考虑 daystart
并添加更多的分钟吗?
例子:
ubuntu@ip-10-138-30-118:/tmp$ ls -la
total 8
drwxrwxrwt 2 root root 4096 Jul 20 14:39 ./
drwxr-xr-x 23 root root 4096 Jun 25 18:34 ../
-rw-rw-r-- 1 ubuntu ubuntu 0 Jul 20 12:35 a.txt
以下两个命令都会返回文件:
ubuntu@ip-10-138-30-118:/tmp$ find /tmp -daystart -maxdepth 1 -mmin +59 -type f -name "*.*"
/tmp/a.txt
而且:
ubuntu@ip-10-138-30-118:/tmp$ find /tmp -daystart -maxdepth 1 -mmin +359 -type f -name "*.*"
/tmp/a.txt
然而,该文件不早于 659 分钟(10.9 小时)!但在 759 分钟(12.65 小时),它就再也没有返回该文件了?
-delete
而不是-exec rm -f {} \;
。 - lanes