删除 /tmp 中超过一天的所有文件和文件夹

删除 /tmp 中超过一天的所有文件和文件夹

我正在尝试删除/tmp目录中所有超过一天的文件和文件夹。

我知道要删除所有文件和文件夹

rm -rf *

但是我不确定如何才能找到所有超过一天的文件和文件夹并删除它们并放入 cron 中。

答案1

首先,使用find选择这些文件:

find /tmp -mmin +1440

将找到 1440 分钟前修改的文件。(有一个选项可以使用天数而不是分钟数,但它会向上舍入,而 +1 则意味着 2 天或更长时间,很遗憾。请参阅下面的说明)。

尝试一下这个,如果您确信找到了正确的文件,请一次性删除它们:

find /tmp -mmin +1440 -delete

查看man find其他可能性(上次状态改变的时间、访问时间)。


使用须知-mtime +1

男人找到

它说:

-m时间 n

文件数据最后修改于 n*24 小时前。

但它也说:

请参阅注释以-atime了解舍入如何影响文件修改时间的解释。

评论-atime说:

当 find 计算出文件上次访问时间是在多少个 24 小时前时,小数部分都会被忽略,因此为了匹配-atime +1,该文件必须至少在两天前被访问过。

换句话说, -mtime只能以 24 小时或一天为单位进行计数 -mtime +1,这意味着恰好比一天多至少一天(即两天以上)

-mmin另一方面,可以用分钟来计算。因此,如果严格的准确性至关重要,那么-mmin +1440(1440 分钟 = 1 天)可以代替-mtime +1

相关内容