Примеры использования xargs
xargs - утилита для формирования списка аргументов и выполнение команды. То есть xargs позволяет вызвать любую команду с аргументами. У команды xargs есть два компонента. Во-первых, вы должны указать файлы, которые вас интересуют. Во-вторых, вы должны задать команду или скрипт, который вы хотите применить к каждому из этих файлов.
xargs - разбивает входной поток на аргументы и передает их выполнение любой команде (по умолчанию echo). Читает либо со стандартного ввода, либо через pipe.
Режимы обработки xargs входящих данных
- По умолчанию разделителем аргументов считается любой пробельный символ: пробел, табуляция, вертикальная табуляция или перевод строки. Но как и в командной оболочке можно использовать "" или \ что бы предотвратить разбиение аргумента.
- Режим, включающийся параметром -L. Практически идентичен предыдущему, за исключением того, что xargs запоминает, какой аргумент на какой строке находится. Более того, если строка оканчивается пробелом или табуляцией, следующая строка считается продолжением текущей.
- По строкам. Включается при использовании опции -I или -0. При этом вся строка считается одним целым аргументом, несмотря на пробелы и табуляции внутри. Для -I концом строки является символ '\n' а для -0 символ '\0'
- Пример: поиск в /home/user1 всех файлов, имена которых оканчиваются на '.txt', и копирование их в другую директорию.
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents
- Найти во всех файлах, расположенных в каталоге /etc/samba вхождение словосочетания logon home.
$ find /etc/samba | xargs grep -ni 'logon home'
- Удалить список файлов. Пути к файлу построчно записаны в файл delfiles.txt
xargs rm < delfiles.txt