Удаление папок, более старых, чем 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 дней. Например, если сегодня был 3-го ноября, я только хочу иметь каталоги 28 и 29 для удаления. Затем, когда это становится 5-го ноября, я хочу, чтобы полный каталог в октябре был удален, поскольку все там теперь будет более старым, чем 5 дней. Какие-либо предложения?

Спасибо

2
задан 10 October 2017 в 11:38

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
3
ответ дан 2 December 2019 в 02:45

Другие вопросы по тегам:

Похожие вопросы: