Удалите файлы, более старые, чем 5 дней, а также во всех подпапках

Я должен удалить все файлы, более старые, чем 5 дней во всех подпапках, но не самих папках. Я знаю команду:

find /path/to/files* -mtime +5 -exec rm {} \;

Но как я могу сказать Ubuntu регистрироваться во всех подпапках, уже никогда не удаляйте сами папки. Мне будет нужен-maxdepth 5 где-нибудь?

Спасибо.

3
задан 4 October 2016 в 11:51

2 ответа

В первую очередь, не давайте шарик find (никакой files*), просто давайте ему родительский каталог (/path/to/). Это будет иметь дело с рекурсивным вызовом в него и нахождением всех файлов. Затем, rm никогда не будет удалять каталоги, таким образом, Вы не должны волноваться об этом также. Однако, самый простой путь:

find /path/to/ -type f -mtime +5 -delete

Примечание -type f, который говорит find только смотреть на файлы и -delete, который, ну, в общем, удаляет их. Это более эффективно, чем вызов отдельного rm для каждого результата.

14
ответ дан 1 December 2019 в 13:01

Можно также использовать

find /path/to -type f -mtime 5+ -exec rm {} \;
-1
ответ дан 1 December 2019 в 13:01

Другие вопросы по тегам:

Похожие вопросы: