Ответ 1
Чтобы удалить все файлы и каталоги в текущем каталоге:
find . -mtime +3 | xargs rm -Rf
Или, альтернативно, больше в соответствии с исходной командой OP:
find . -mtime +3 -exec rm -Rf -- {} \;
У меня есть каталог файлов журналов, в котором содержится 82000 файлов и каталогов (около половины и половины).
Мне нужно удалить все файлы и каталоги, которые старше 3 дней.
В каталоге, в котором содержится 37000 файлов, я смог сделать это с помощью
find * -mtime +3 -exec rm {} \;
Но с 82000 файлами/каталогами я получаю сообщение об ошибке:
/usr/bin/find: слишком длинный список аргументов
Как обойти эту ошибку, чтобы удалить все файлы/каталоги, которые старше 3 дней?
Чтобы удалить все файлы и каталоги в текущем каталоге:
find . -mtime +3 | xargs rm -Rf
Или, альтернативно, больше в соответствии с исходной командой OP:
find . -mtime +3 -exec rm -Rf -- {} \;
Можно также использовать:
find . -mindepth 1 -mtime +3 -delete
Не удалять целевой каталог
Другое решение для исходного вопроса, особенно. полезно, если вы хотите удалить только НЕКОТОРЫЕ из старых файлов в папке, будет выглядеть так:
find . -name "*.sess" -mtime +100
и т.д. Кодирует групповые шаблоны оболочки, что позволяет вам "найти" миллионы файлов:)