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


9

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

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


1
Есть man find. Boom.

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

Ответы:


15
find /the/dir/to/start/in -type f -mtime +365 -ls -exec rm -f -- {} \;

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.