Сегодня про то, как архивировать файлы выборочно - например, только .log, только старше 3 дней или только те, что совпадают с маской. Будем комбинировать
find, xargs и tar.▪️ Пример 1: Упаковка логов старше 3 дней
find /var/log/myapp -type f -name "*.log" -mtime +3 \
| xargs tar -czf old_logs.tar.gz
find ищет .log, старше 3 днейxargs передаёт списком в tartar упаковывает их в old_logs.tar.gz▪️ Пример 2: По шаблону имени (например, только report_*.txt)
find ./reports -type f -name "report_*.txt" \
| xargs tar -czf reports_$(date +%Y%m%d).tar.gz
Упакует все отчеты с именами report_*.txt в архив с датой.
▪️ Если имена с пробелами
find . -type f -name "*.csv" -print0 \
| xargs -0 tar -czf data.tar.gz
-print0 и -0 защищают от пробелов и спецсимволов.▪️ Плюс: Указание имени архива в переменной
ARCHIVE="backup_$(date +%F).tar.gz"
find . -type f -name "*.conf" -mtime -7 \
| xargs tar -czf "$ARCHIVE"
BashTex 📱 #bash