Ответы:
Вы можете сделать это с помощью этой команды
find /path/to/files* -mtime +365 -exec rm {} \;
Некоторые объясняют
/path/to/files* это путь к файлам.
-mtimeиспользуется для указания количества дней, в течение которого данный файл +365 найдет файлы старше 365 дней, что составляет один год
-exec позволяет передать команду, такую как rm.
Редактировать Благодаря заметке @Oli -> вы можете сделать это:
find /path/to/files* -mtime +365 -delete
"{}"в {}прежде, чем передать ее findв первую очередь; затем findзаменяет ее. Цитирование {}предлагается на тот случай, {и }иногда они могут обрабатываться специально оболочкой - которая не имеет ничего общего с делать с пробелами. И часто {}не нужно заключать в кавычки. Я не могу придумать ни одной ситуации, по крайней мере, при вызове find из оболочки в стиле Борна, когда {}, когда внутри ничего нет, он появляется как аргумент, нужно процитировать. А вы?)
findдескрипторы убегают сами по себе, но это не плохая привычка во время написания сценариев. Это не больно.
findне обработать экранирование, "{}"все равно будет иметь тот же эффект, что и - {}просто не будет работать, вместо того, чтобы работать оба. Это {}и "{}"ведет себя одинаково не - и не может быть - из-за какой-либо особенности поиска. Смешивать то, что расширяется оболочкой, с тем, что расширяется другой программой, - плохая привычка. Мы все время от времени совершаем эту ошибку, но это все же ошибка - не лучшая практика. (Можно по-прежнему цитировать, {}чтобы помочь людям увидеть, что это не шаблон для расширения фигурных скобок, но это не связано с разделением слов.)
{}в-exec(так что читается-exec rm "{}" \;). Это гарантирует, что пробелы обрабатываются правильно ... И вы можете просто использовать-deleteфункцию вместо-exec.