Как программно очистить старые каталоги в unix / shell? - PullRequest
3 голосов
/ 05 марта 2011

У кого-нибудь есть для этого хорошая оболочка?

Я хочу проверить возраст в каталоге. Если я создал несколько каталогов на еженедельной основе и хочу очистить их / удалить их, например, через 7 дней.

Как бы я это сделал?

1 Ответ

3 голосов
/ 05 марта 2011

Это позволит вам выполнить пробный прогон, удалите echo, если вам нравится вывод

find /path/to/toplevel -type d -mtime +7 -exec echo rm -rf {} +

Обновление

Если у вас есть более старая версия find, которая не соответствует POSIX 2004, используйте вместо этого:

find /path/to/toplevel -type d -mtime +7 -exec echo rm -rf {} \;

или

find /path/to/toplevel -type d -mtime +7 -print0 | xargs -0 echo rm -rf {}

Первый, завершенный \;, будет вызывать rm для каждого найденного каталога, последний с xargs будет пытаться вызвать rm как можно меньше раз, передавая несколько каталогов в один вызов rm и, таким образом, будет намного быстрее. Последний также имеет поведение, идентичное первому, оканчивающемуся на +

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...