Кто-то ответил на этот вопрос, а затем удалил свой ответ, но я использовал ответ, который он дал.
find /path -mtime +1000 -exec rm -rf {} \;
Это удалит файлы старше 1000 дней.
удалить самый старый файл
find . -name '*some-pattern*' -type f -printf '%T+ %p\n' | sort | head -n1 | awk '{print $2}' | xargs rm -v
цель -name '*some_pattern*'
здесь - ограничить совпадения только файлами, которые вы хотите удалить
В zsh:
rm **/*(.om[-1])
(или из другой оболочки: zsh -c 'rm **/*(.om[-1])'
)
что означает:
( ... ) — это квалификатор zsh glob
.
означает рассматривать только «простые» файлы (не каталоги и т. д.)
om
означает упорядочить их по времени модификации
-1
означает выбрать только самый старый файл