【问题标题】:Linux - Delete directories which are older than x daysLinux - 删除超过 x 天的目录
【发布时间】:2016-08-29 22:35:26
【问题描述】:

我想知道如何删除所有超过 14 天的目录,而不删除它们的子文件夹。

我一直在使用以下命令,但这也会检查/删除所有绑定到其主目录的子文件夹:

find /path/ -mtime +14 -type d | xargs rm -f -r;

所以它基本上应该只检查 /path/ 中的目录是否超过 14 天,如果是则删除它们。 我上面的当前命令也会检查它们的子文件夹,如果超过 14 天,则删除它们,但它不应该检查它们 - 只有 /path/ 中的“主”文件夹。

克里斯

【问题讨论】:

  • 如何删除任何文件夹同时保留其子文件夹?这似乎很矛盾。您是否有更大的问题要解决?
  • 我当前的命令也会检查所有子文件夹,但它应该只检查位于 /path/ 的主文件夹的修改日期,而不是例如/path/main_directory_1/子文件夹/。
  • 是的,我们阅读了您的标题和问题描述。您是否要求仅删除文件并保留子目录?子目录中的文件呢?请改写您的问题,以便有人可以提供帮助。祝你好运。
  • 对不起。我更新了帖子。
  • 也许看到find 手册页?可能对 -maxdepth 选项很感兴趣。

标签: linux directory


【解决方案1】:

可以通过使用模式来解决:

find /path/ -name "FOLDER_*-*-*_*" -mtime +14 -type d | xargs rm -f -r;

此命令将在 14 天后删除位于 /path/ 的所有目录,“不检查”它们的子文件夹。 /path/ 的目录名称必须修补以下模式,例如FOLDER_08-25-16_8:00.

它基本上也会检查子文件夹,但它们必须与上面的模式匹配,否则将不会被检查。这不是一个完整的解决方案,但它绝对比没有好,它可以满足我一直在寻找的需求,对吧? ^^

克里斯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多