LINUX.ORG.RU
решено ФорумAdmin

Удаление папок старше N месяцев

 ,


0

1

Добрый день Есть множество каталогов с файлами типа /home/share/<уникальный id>/год/месяц/день/файл.abc

Нужно удалять то, что старше 3-х месяцев (с затиранием пустых каталогов). Есть ли какой-то простой метод Спасибо.

find /path/to/dir* -type f -mtime +90 -delete

удалит файлы

rmdir /*

удалит только пустые директории

anonymous ()

не совсем 3 месяца, но не меньше. зато максимально просто

rm -rf /home/share/*/$(date -d '4 months ago' '+%Y/%m')

futurama ★★★★★ ()
Последнее исправление: futurama (всего исправлений: 2)
Ответ на: комментарий от anonymous

rmdir --ignore-fail-on-non-empty --parents /path/to/directory

если точнее, лень было просто писать.

anonymous ()
Ответ на: комментарий от Avial

find /your/path -mtime +90 -delete - Это на сколько я понял удалит не только файлы но и папки созданные до этой даты. Соответственно нужно добавить -type f, как посоветовали выше

sergeagle ()
Ответ на: комментарий от sergeagle

в случае, если эти директории будут пустые и старше 90 и с директории с файлами тоже - если все файлы в директории старше 90 дней. в противном случае, если будет хоть один файл младше - удалит все файлы старше и выдаст ошибку при попытке удаления директории, так как она непуста.

второй поубивает просто все пустые директории

Avial ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.