Как удалить все файлы старше 3 дней, когда "список аргументов слишком длинный"?


У меня есть каталог файлов журнала, в котором есть 82000 файлов и каталогов (около половины и половины).

Мне нужно удалить все файлы и каталоги, которые старше 3 дней.

в каталоге, который имеет 37000 файлов в нем, я смог сделать это с:

find * -mtime +3 -exec rm {} ;

но с 82000 файлов/каталогов, я получаю ошибку:

/usr/bin / find: список аргументов слишком длинный

как я могу обойти это ошибка, чтобы я мог удалить все файлы / каталоги, которые старше 3 дней?

3 82

3 ответа:

удалить все файлы и каталоги в настоящее

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

find . -mindepth 1 -mtime +3 -delete

чтобы не удалять целевой каталог

другое решение для исходного вопроса, esp. полезно, если вы хотите удалить только некоторые из старых файлов в папке, было бы примерно так:

find . -name "*.sess" -mtime +100 

и так далее.. Кавычки блок оболочки подстановочные знаки, что позволяет "найти" миллионы файлов:)