Как удалить файлы, измененные между определенными датами?
Как и в теме: я хотел бы удалить файлы в каталоге, которые были изменены в определенном диапазоне дат. Как я могу это сделать?
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
Имейте в виду, что не удаляйте одинарные кавычки, которые защищают пробелы между датой и временем.
Характер !
это отрицание, его следует читать: новее эта дата, но не новее этой другой даты.