xargs — утилита для формирования списка аргументов и выполнения команды в UNIX-подобных операционных системах. Команда xargs объединяет зафиксированный набор заданных в командной строке начальных аргументов с аргументами, прочитанными со стандартного ввода, и выполняет указанную команду один или несколько раз.
xargs [-l число] [-I зам_цеп] [-n число] [-t] [-p] [-x] [-s размер] [-e [лконф_цеп]] [команда [начальный_аргумент…]]
-0
-print0
команды find
-l число
-I зам_цеп
-n число
-t
-p
-x
-s размер
-e [лконф_цеп]
Выполнение программы xargs прекращается, если она получает от команды код завершения −1 или если команда не может быть выполнена. Если команда — это shell-программа, она должна явно выполнять exit с соответствующим аргументом, чтобы избежать случайного возврата кода −1.
Данная команда принимает на вход поток вывода от команды echo и отправляет его как аргументы в команду echo
echo A B C | xargs echo
Данная команда принимает на вход поток вывода от команды echo и отправляет его как аргументы в команду echo, запуская для каждой группы из одного параметра (т. е. для каждого параметра) отдельный процесс
echo A B C | xargs -n 1 echo
Следующая shell-процедура пересылает все файлы из каталога $1 в каталог $2 и сообщает о каждой пересылке перед тем, как её выполнить:
ls $1 | xargs -I {} -t mv $1/{} $2/{}
Следующая команда объединяет вывод команд, заключённых в скобки, в одну строку, которая затем добавляется в конец файла log:
(logname; date; echo $0 $*) | xargs >>log
Пользователя спрашивают, какие файлы из текущего каталога должны быть занесены в архив. При выполнении первой команды (см. ниже) файлы заносятся в архив arch по одному; при выполнении второй команды в архив заносится сразу много файлов.
ls | xargs -p -l ar r arch
ls | xargs -p -l | xargs ar r arch
Следующая shell-процедура применяет команду diff к последовательным парам своих аргументов.
echo $* | xargs -n2 diff
Еще одна полезная опция -- -0, в комбинации с find -print0 или grep -lZ (grep -l --null в OS X) позволяет обрабатывать аргументы, содержащие пробелы и кавычки.
find / -type f -print0 | xargs -0 grep -liwZ GUI | xargs -0 rm -f
grep -rliwZ GUI / | xargs -0 rm -f
Обе вышеприведенные команды удалят все файлы, содержащие в своем имени комбинацию символов "GUI".
xargs(1)
— страница справки man по пользовательским командам GNU/Linux (англ.)xargs(1)
— страница справки man по пользовательским командам OpenBSD (англ.)xargs(1)
— страница справки man по пользовательским командам FreeBSD (англ.)Для улучшения этой статьи по информационным технологиям желательно: |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .