删除超过 5 天的文件夹

删除超过 5 天的文件夹

我有一个备份文件夹,它使用类似日历的文件夹结构来组织文件。我想每 5 天删除一次这些文件,但最终我删除了完整备份,因为主文件夹的保存时间已超过 5 天。

文件夹结构:

Backup
    -> 2017
          -> October
                 -> 28
                 -> 29
                 -> 30
                 -> 31
          -> November
                 -> 1
                 -> 2
                 -> 3

我试过运行这个命令:

find /mnt/backup/* -type d -mtime +5 -execdir rm -rf {} \;

但是它将删除目录 2017,因为它已超过 5 天,这反过来意味着它将删除所有子文件夹。我只想删除其中已超过 5 天的目录。例如,如果今天是 11 月 3 日,我只想删除目录 28 和 29。然后当它变成 11 月 5 日时,我希望删除整个 10 月目录,因为其中的所有内容现在都已超过 5 天。有什么建议吗?

谢谢

答案1

-mindepth 1如果你不想2017被触摸,请使用:

$ mkdir -p foo/2017/{October/{28..31},November/{1..3}}
$ touch -d 'now - 6 days' foo/2017/October/{28,29} foo/2017
$ find foo/* -mindepth 1 -mtime +5
foo/2017/October/28
foo/2017/October/29
$ find foo/* -mtime +5
foo/2017
foo/2017/October/28
foo/2017/October/29

foo如果从而不是开始foo/2017,则使用-mindepth 2

$ find foo/ -mindepth 2 -mtime +5
foo/2017/October/28
foo/2017/October/29

相关内容