使用带有“-mtime”和“-exec rm -rf”的“find”命令删除的文件比预期的多

使用带有“-mtime”和“-exec rm -rf”的“find”命令删除的文件比预期的多

我正在使用以下命令行测试删除 Ubuntu 18.04 上的旧文件:

sudo find /media/Archive -type f -mtime +463 -exec rm -rf {} \;

目前 /Archive 文件夹包含从 2021 年到“今天”的文件,以年份分隔,即 /2021、/2022。每个文件名的末尾都包含儒略日,例如

STN01.CH1.1 is Jan 1 2021
STN01.CH1.2 is Jan 2 2021
STN01.CH1.3 is Jan 3 2021

儒略日与文件的时间戳相对应。

测试仅删除时间戳为 2021 年 1 月 1 日的文件 STN01.CH1.1。

使用“-mtime +463”的理由是:

  • 今天是 2022 年 3 月 9 日,儒略日 99
  • 2021 年 1 月 1 日是 365 天前(2021 年)加上 2022 年的 99 天 = 464。
  • 减去 1 天,因为文件上的时间戳是第二天 00:00,而这些是 24 小时文件。

当我跑步时:

sudo find /media/Archive -type f -mtime +463 -exec rm -rf {} \;

我得到了一个意想不到的结果:它删除了 2021 年的第 1 天到第 331 天,而不是仅删除了 2021 年的第 1 天。显然我的逻辑是错误的;如果有人告诉我我哪里错了,我将不胜感激。

答案1

仅供参考,我在计算天数时犯了一个错误。此命令行:

sudo 查找 /media/Archive/-类型 f -m时间 +433*

2021 年第 1 天和第 2 天按预期返回。抱歉给您带来不便。

相关内容