gpt4 book ai didi

linux - 删除名称中没有特定子字符串的特定日期之前的文件 (Linux)

转载 作者:太空宇宙 更新时间:2023-11-04 12:14:54 26 4
gpt4 key购买 nike

我有一个包含备份文件的文件夹,其名称如下:

backup_2017_12_01__09_00_01.sql.gz
backup_2017_12_01__10_00_01.sql.gz
...
backup_2017_12_01__19_00_01.sql.gz
backup_2017_12_01__20_00_01.sql.gz

backup_2017_12_02__09_00_01.sql.gz
backup_2017_12_02__10_00_01.sql.gz
...
backup_2017_12_02__19_00_01.sql.gz
backup_2017_12_02__20_00_01.sql.gz

等等。

我有一个 cron 应该根据这些规则执行文件的删除:

  1. 删除所有超过 45 天的文件;用 find 解决。 -mtime +45 -exec rm {}\;
  2. 删除所有超过 7 天的文件,除了名称中带有字符串 __20_ 的文件(晚上最后一次备份);基于最后修改时间而不是名称的命令也可以

有人可以帮我解决第二点吗?

谢谢。

最佳答案

find /p/a/t/h \( -mtime +45 -o \( -mtime +5 ! -name '*__20_*' \) \) -delete

如果你愿意,你可以更明确:

find /p/a/t/h \( -mtime +45 -o \( -mtime +5 -and ! -name '*__20_*' \) \) -delete

请注意,您应该更加准确地使用语言。这不会删除“超过 45 天”的文件。它根据文件的修改时间删除文件,这可能与年龄有很大不同。

关于linux - 删除名称中没有特定子字符串的特定日期之前的文件 (Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47751551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com