我想删除超过59分钟的文件。到目前为止我有这个:
find /tmp -daystart -maxdepth 1 -mmin +59 -type f -name "*.*" -exec rm -f {} \;
这不起作用,似乎删除了所有文件。我已经多次测试了这个问题,我认为问题与daystart
有关。
我已经阅读了手册页,它看起来基于时间而不是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小时),它不再返回文件了?
答案 0 :(得分:21)
与-mmin
一起使用时,-daystart
似乎是从今天的结束开始计算,而不是从头开始计算。
如果您只想查找超过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
答案 1 :(得分:2)
这应该对你有用
find /path -mmin +59 -type f -exec rm -fv {} \;