У меня есть резервная папка, чем использование календарь как структура папок для организации файлов. Я хочу удалить их каждые 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 дней. Какие-либо предложения?
Спасибо
Используйте -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