我正在使用以下命令行测试删除 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 天按预期返回。抱歉给您带来不便。