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