我想删除超过 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 小时),它不再返回文件了吗?
最佳答案
当与 -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
关于linux - 删除早于 X 分钟的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17763415/