Как удалить файлы в Linux старше 1 года? [Дубликат]

9

Возможное дублирование:
Как мне удалить файлы, превышающие определенную дату в Linux

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

Сообщество
источник
1
Есть man find. Boom.
1
Примечание для близких: этот другой вопрос на самом деле сбивает с толку, его ответы не совсем просты для транспонирования.
Жиль "ТАК - перестань быть злым"

Ответы:

15
find /the/dir/to/start/in -type f -mtime +365 -ls -exec rm -f -- {} \;
bot403
источник
2
find /path/to/files -type f -mtime +365 -deleteбыло бы проще.
Крис С
-delete отсутствует в моем поиске AIX, поэтому я не привык его использовать. Я рад, что это реализовано в других бинарных файлах.
bot403
find … -exec rm -f {} +будет немного быстрее (и это портативно, кроме древних систем).
Жиль "ТАК - перестань быть злым"
1
Кроме того, это хорошая идея, --если первое имя файла начинается с -(хотя вы можете гарантировать, что этого не произойдет, если переданный каталог findне начинается с -).
Жиль "ТАК - перестань быть злым"
Это чрезвычайно опасно, поскольку вы не видите, что собираетесь удалить, и почему в мире вы вынуждены удалять с помощью -f? Некоторые файлы защищены по причине. Гораздо безопаснее сохранить результаты поиска в файле, затем изучить их и запустить rm для содержимого файла.
Петр
2

Если вы удаляете много файлов, это обычно намного быстрее, чем «-exec» или «xargs»:

find . -type f -mtime +365 | perl -lne unlink
Понт
источник