Linux: удаление файлов по дате

Доброго времени суток.

Встала передо мной задача удаления большого количества файлов (около 1 млн штук). Но удалить надо не все, а только те, которые были созданы до начала текущего месяца. Сами понимаете, выделять все — не вариант, частично — может уйти целая жизнь. Нашел в сети отличное на мой взгляд решение. Вот пример команды, которую я использовал. Попробую разобрать без документации что в ней что значит :)

find -maxdepth 1 -type f -newermt "Apr 10" ! -newermt "Aug 01" -delete

-maxdepth - это максимальная глубина поиска. В моем примере искал только внутри одной папки.

-type - это тип поиска. f — файлы.

-newermt - с какой даты начать удаление. Указал кратко месяц и день. Думаю можно туда же добавить и год если будет такая необходимость — читает стандартные форматы даты.

-delete - ну это собственно команда удаления.

Хочется отметить, что до этого был опыт удаления файлов по маске. Удаление через find работает значительно быстрее, я бы даже сказал в несколько раз быстрее.

Вот и все.



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Яндекс.Метрика