我想删除超过59分钟的文件.我到现在为止
find /tmp -daystart -maxdepth 1 -mmin +59 -type f -name "*.*" -exec rm -f {} \;
这不起作用,似乎删除所有文件.我已经测试了这几次,我认为这个问题是与启动时间有关.
我已经阅读了这个手册页,似乎是在一天的开始的基础上,而不是从24小时前开始的.如果是这样,如何准确地删除59分钟以上的文件?我需要考虑开机时间,再加上几分钟吗?
例:
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
解决方法
当与-mmin一起使用时,-artstart似乎使它从今天结束开始计算,而不是开始.
如果您只想在59分钟前找到修改的文件,则不需要该选项. -mmin默认从当前时间计算.
barmar@dev:~/testdir$date Sat Jul 20 10:02:20 CDT 2013 barmar@dev:~/testdir$ls -l total 0 -rw-r--r-- 1 barmar adm 0 Jul 20 09:57 a.txt barmar@dev:~/testdir$find . -maxdepth 1 -mmin +2 -type f ./a.txt barmar@dev:~/testdir$find . -maxdepth 1 -mmin +10 -type f