Автоматизация пересортировки файлов в Linux нередко сталкивается с проблемами имен с пробелами. Самый надежный способ — использовать find с -print0 и xargs с -0.
Пример команды для перемещения всех файлов с расширением .log из указанного каталога в другую директорию:
find /path -maxdepth 1 -type f -name '*.log' -print0 | xargs -0 -I{} mv -- "{}" /archive/logs/Опция
-print0 у команды find выводит имена файлов, разделённые нулевым символом, а xargs с -0 принимает именно такой формат.Можно использовать аналогичный приём и для переноса логов конкретного приложения:
find /var/log/myapp -type f -name 'myapp-*.log' -print0 | xargs -0 -I{} mv -- "{}" /backups/logs/Перед применением стоит проверить корректность поиска, выполнив команду
find без части с xargs и mv, чтобы убедиться, что выбраны именно нужные файлы.🐸 Библиотека devops'a
#root_prompt