Как удалить файлы, измененные между определенными датами?

Как и в теме: я хотел бы удалить файлы в каталоге, которые были изменены в определенном диапазоне дат. Как я могу это сделать?

1 ответ

Решение

Команда GNU find это путь Например, чтобы удалить все файлы в текущем каталоге с 1 по 5 августа, вы можете использовать следующую команду

find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete

Лучше выполнить команду без -delete действие, во-первых, чтобы увидеть список заинтересованных файлов (хорошая замена может быть -ls которые производят ls-like листинг).

Удаление -maxdepth 1 Спецификация также будет проходить по всем подкаталогам.

Вы также можете указать часы, например

find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
                         ! -newermt '2011-08-06 23:01:00' -delete

Имейте в виду, что не удаляйте одинарные кавычки, которые защищают пробелы между датой и временем.

Характер ! это отрицание, его следует читать: новее эта дата, но не новее этой другой даты.

Другие вопросы по тегам