mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

      XARGS(1)                                               XARGS(1)

      НАЗВАНИЕ
              xargs - формирование списка аргументов и выполнение ко-
              манды

      СИНТАКСИС
              xargs  [-lчисло] [-iзам_цеп] [-nчисло] [-t] [-p] [-x] [-sразмер]
                  [-e[лконф_цеп]] [команда [начальный_аргумент ...]]

      ОПИСАНИЕ
              Команда xargs об единяет зафиксированный набор заданных
              в  командной строке начальных_аргументов с аргументами,
              прочитанными со стандартного ввода, и выполняет указан-
              ную команду один или несколько раз.  Число  аргументов,
              которые должны быть прочитаны для каждого вызова коман-
              ды,  и  способ,  которым они об единяются, определяются
              заданными опциями.

              Xargs использует значение  переменной  окружения  $PATH
              для поиска команды, которая может быть файлом  shell'а.
              Если команда опущена, используется /bin/echo.

              Аргументы, прочитанные со  стандартного  ввода,  -  это
              непрерывные цепочки  символов,  разделенные  одним  или
              несколькими пробелами, символами табуляции или  перево-
              дами строки; пустые строки игнорируются. Чтобы включить
              в аргумент пробелы и табуляции, их надо выделить симво-
              лами \ или кавычками; символы,  заключенные  в  кавычки
              (одинарные или двойные) воспринимаются буквально;  сами
              кавычки удаляются. Вне цепочек в кавычках обратная нак-
              лонная черта (\) вместе со следующим символом обознача-
              ет соответствующий управляющий символ.

              Конструирование каждого списка аргументов начинается  с
              начальных_аргументов, за ними следует  несколько  аргу-
              ментов со стандартного ввода (есть исключение: см.  оп-
              цию -i). Опции -i, -l и -n определяют, как выбирать ар-
              гументы для каждого вызова команды. Когда  ни  одна  из
              этих опций не указана, за начальными_аргументами следу-
              ет несколько аргументов, прочитанных  подряд  со  стан-
              дартного ввода до заполнения внутреннего буфера;  затем
              выполняется команда с накопленными аргументами.  Данный
              процесс повторяется до тех пор, пока все  аргументы  не
              будут исчерпаны. Если указаны  взаимоисключающие  опции
              (например, одновременно заданы опции -l и -n),  берется
              во внимание последняя.

              Опциям команды xargs приписан следующий смысл:

              -lчисло
                   Выполнять  команду  для каждой группы из заданного
                   числа непустых строк  аргументов,  прочитанных  со
                   стандартного  ввода. Последний вызов команды может
                   быть с меньшим числом строк аргументов. Считается,
                   что строка заканчивается первым встретившимся сим-
                   волом перевода строки, если только  перед  ним  не
                   стоит  пробел или символ табуляции; пробел/табуля-
                   ция в конце сигнализируют о том, что следующая не-
                   пустая строка является продолжением  данной.  Если
                   число  опущено,  оно  считается равным 1. Опция -l
                   включает опцию -x.

              -iзам_цеп
                   Режим  вставки:  команда  выполняется  для  каждой
                   строки стандартного ввода, причем вся строка расс-
                   матривается как один аргумент  и  подставляется  в
                   начальные_аргументы вместо каждого  вхождения  це-
                   почки символов зам_цеп. Допускается не более 5 на-
                   чальных_аргументов, содержащих одно или  несколько
                   вхождений зам_цеп. Пробелы и  табуляции  в  начале
                   вводимых строк отбрасываются. Сформированные аргу-
                   менты не могут быть длиннее 255 символов. Если це-
                   почка  зам_цеп  не  задана, она полагается  равной
                   { }. Опция -i включает опцию -x.

              -nчисло
                   Выполнить команду, используя максимально возможное
                   количество аргументов, прочитанных со стандартного
                   ввода, но не более заданного числа. Будет  исполь-
                   зовано меньше аргументов, если их общая длина пре-
                   вышает  размер  (см.  ниже опцию -s), или если для
                   последнего вызова их осталось меньше, чем заданное
                   число. Если указана также опция -x, каждая  группа
                   из указанного числа аргументов должны укладываться
                   в  ограничение  размера,  иначе  выполнение  xargs
                   прекращается.

              -t   Режим трассировки: команда  и  каждый  построенный
                   список аргументов перед  выполнением  заносятся  в
                   стандартный протокол.

              -p   Режим с приглашением: xargs перед  каждым  вызовом
                   команды запрашивает подтверждение. Включается  ре-
                   жим трассировки (-t), за счет чего печатается  вы-
                   зов команды, который должен быть  выполнен,  а  за
                   ним - приглашение ?.... Ответ y (за которым  может
                   идти что угодно) приводит  к  выполнению  команды;
                   при каком-либо другом ответе, включая возврат  ка-
                   ретки, данный вызов команды игнорируется.

              -x   Завершить выполнение, если очередной список  аргу-
                   ментов оказался длиннее, чем размер (в  символах).
                   Опция -x включается опциями -i и -l. Если ни  одна
                   из опций -i, -l или -n  не  указана,  общая  длина
                   всех аргументов должна укладываться в  ограничение
                   размера.

              -sразмер
                   Максимальный общий  размер  (в  символах)  каждого
                   списка аргументов установить равным заданному раз-
                   меру.  Размер должен быть положительным числом, не
                   превосходящим 470 (подразумеваемое значение).  При
                   выборе  размера  следует  учитывать, что к каждому
                   аргументу добавляется по одному символу; кроме то-
                   го, запоминается число символов в имени команды.

              -e[лконф_цеп]
                   Цепочка символов лконф_цеп считается признаком ло-
                   гического конца файла. Если опция -e  не  указана,
                   признаком конца считается подчеркивание (_). Опция
                   -e без лконф_цеп аннулирует возможность устанавли-
                   вать логический  конец  файла  (подчеркивание  при
                   этом рассматривается как обычный символ).  Команда
                   xargs читает стандартный ввод до тех пор, пока  не
                   дойдет до конца  файла  или  не  встретит  цепочку
                   лконф_цеп.

              Выполнение программы xargs прекращается, если она полу-
              чает от команды код завершения -1 или если  команда  не
              может быть выполнена. Если команда - это shell-програм-
              ма, она должна явно выполнять exit [см. sh(1)] с  соот-
              ветствующим аргументом, чтобы избежать случайного возв-
              рата кода -1.

      ПРИМЕРЫ
              1. Следующая shell-процедура пересылает  все  файлы  из
              каталога  $1 в каталог $2 и сообщает о каждой пересылке
              перед тем, как ее выполнить:

                   ls $1 | xargs  -i -t mv $1/{} $2/{}

              2. Следующая команда об единяет вывод команд, заключен-
              ных в скобки, в одну строку, которая затем  добавляется
              в конец файла log:

                   (logname; date; echo $0 $*) | xargs  >>log

              3. Пользователя спрашивают, какие файлы из текущего ка-
              талога  должны  быть  занесены  в архив. При выполнении
              первой команды (см. ниже) файлы заносятся в архив  arch
              по  одному; при выполнении второй команды в архив зано-
              сится сразу много файлов.

                   ls | xargs  -p -l ar r arch
                   ls | xargs  -p -l | xargs ar r arch

              4. Следующая shell-процедура применяет команду  diff(1)
              к последовательным парам своих аргументов.

                   echo $* | xargs  -n2 diff

      СМ. ТАКЖЕ
              sh(1).

      ДИАГНОСТИКА
              Не требует пояснений.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк