Как найти и удалить самый старый файл определенных типов в дереве каталогов

find / \( -name "*.log" -o -name "*.mylogs" \) -exec ls -lrt {} \; | sort -k6,8 | head -n1 | cut -d" " -f8- | tr -d '\n' | xargs -0 rm


Команда find ищет файлы с расширениями .log или .mylogs в дереве каталогов, начиная с корневого каталога /. Затем она использует ls -lrt для вывода информации о файлах в порядке убывания даты модификации. sort -k6,8 сортирует этот список по дате. head -n1 выбирает самый старый файл. cut -d" " -f8- удаляет лишние данные, оставляя только имя файла. tr -d '\n' убирает символ новой строки. Наконец, xargs -0 rm удаляет выбранный файл.

Альтернатива: Вы можете использовать команду find и rm с опцией -delete для более простого удаления файла:
find / \( -name "*.log" -o -name "*.mylogs" \) -exec rm {} \;

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *