Немного покопавшись нашёл, как использовать 2 команды с find
. В этом помогает параметр -exec
:
find /home/user/logs -type f -name '*log' -mtime +7 -exec bash -c "bzip2 -k {}; rm {}" \;
Пояснения:
/home/user/logs
- каталог, в котором мы ищем файлы
-type f
- искать только файлы
-mtime +7
- файлы, которые старше 7 дней
-exec bash -c
- оболочка под которой будут запускаться следующие команды
"bzip2 -k {}; rm {}"
- список команда, запускаемых поочерёдно (будут применяться к каждому файлу по отдельности
К примеру, в директории /home/user/logs
хранятся следующие файлы:
result_program_1.log
result_program_2.log
result_program_3.log
result_program_4.log
result_program_5.log
Первые три файла, старше 7 дней, так что выполнение вышеописанной команды find
в результате будет выглядеть так:
bzip2 -k result_program_1.log
rm result_program_1.log
bzip2 -k result_program_2.log
rm result_program_2.log
bzip2 -k result_program_3.log
rm result_program_3.log