Ответы:
Вы можете сделать это с помощью этой команды
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
.