Есть ли команда для удаления всех файлов в каталоге, которые не были изменены за N дней? Мне нужно почистить старые журналы.
16
Это приведет к удалению всех файлов старше 5 дней, вы можете -name '*log'
указать их там, чтобы быть более точным, и вы можете указать и maxdepth
команду find.
find /some/dir -type f -mtime +5 -delete
-ls
вместо того,-delete
чтобы убедиться, что это не удалит все, что они хотели сохранить. Да, если говорить из опыта здесь./ some/dir/
версию. :(С квалификаторами
zsh
и(.m+n)
glob :.
выбирает только обычные файлы,m+n
выбирает файлы, измененные более n дней назад;например, список файлов в текущем каталоге, которые были изменены более 9 дней назад:
добавить,
D
чтобы включить точечные файлы:или если вы хотите использовать рекурсив (и перечислите, например, только файлы, заканчивающиеся на
.log
):заменить
print -rl
с ,rm
если вы довольны результатом; хотя вам, возможно, придется использовать,zargs
если у вас много файлов (чтобы избежать слишком длинного списка аргументов ):источник