Я хотел бы запустить ночное задание cron, которое удаляет все файлы в папке, к которым не было доступа в течение недели или более. Какой самый эффективный способ сделать это в bash?
Я хотел бы запустить ночное задание cron, которое удаляет все файлы в папке, к которым не было доступа в течение недели или более. Какой самый эффективный способ сделать это в bash?
Ответы:
Вы хотите findинструмент .
find folder -depth -type f -atime +7 -delete
(Это будет удалить все файлы ( только регулярные те , ни трубы, специальные устройства, каталоги, символические ссылки) в данной папке и все подкаталоги (рекурсивно) , где последний раз доступа является больше чем 7 дней назад.)
-type fтуда, чтобы убедиться, что он удаляет только файлы, а не целые каталоги.
Вы можете проверить, tmpwatchкакие из них можно использовать в работе cron. Не нужно кататься самостоятельно find. На RHEL это в tmpwatchRPM.
find.
findможет фильтровать по времени. «Правильность» atime зависитnoatimeкак минимум от конфигурации (см. ).