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