Я заметил сегодня (после ~ 8 лет счастливого взлома bash), что нет никакого тривиального способа «удалить по дате» с помощью «rm». Таким образом, решение состоит в том, чтобы объединить команды вокруг таких команд, как rm, ls, find, awk и sed.
Скажем, например, что я хотел удалить каждый файл в рабочем каталоге с 2009 года, какой будет типичный подход?
Я придумал следующее, что неприятно и должно выполняться, только если 'rm' установлен для пропуска каталогов (в противном случае вы удалите родительский каталог):
ls -la | awk '{if (substr($6,0,5)==2009) print $8}' | xargs rm
Очки как за самые элегантные, так и за невероятно сложные решения.