Я хочу удалить файлы старше 30 дней в каталоге, но не в каталогах ниже того, в котором я нахожусь.
решение1
Чтобы просмотреть список файлов перед их удалением:
find . -maxdepth 1 -mtime +30 -type f -ls
Чтобы удалить файлы:
find . -maxdepth 1 -mtime +30 -type f -exec rm {} +
с
.
указание текущего каталога-maxdepth 1
спуститься максимум на 1 уровень каталогов-mtime +30
только файлы, последний раз измененные > 30 дней-type f
только обычные файлы
решение2
Оболочка zsh имеетспециальные функции расширения подстановочных знаковэто помогло бы.
вывести список файлов старше 30 дней в текущем каталоге:
ls -d -- *(.m+30)
удалить файлы старше 30 дней в текущем каталоге:
rm -- *(.m+30)
Синтаксис zsh *(.m+30)
представляет собой подстановочный знак, который означает:
*
-- любое имя файла( ... )
-- с оговоркой....
-- обычный файл (не каталог и т.п.)m+30
-- время изменения больше 30 дней назад