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 {} \;