НАЗВА

xargs - дозволяє побудову і виконання рядків команд зі стандартного вводу

СТИСЛО

ОПИС

У цьому посібнику описується весія xargs від GNU. Програма xargs читає (розділені пробілами або новим рядком) аргументи зі стандартного вводу, і виконує команду (без задання - /bin/echo) один або більше разів з початковими-аргументами, за якими слідуватимуть аргументи, прочитані зі стандартного вводу. Порожні рядки стандарного вводу ігноруються. Буквальні пробіли або нові рядки аргументів можна екранувати за допомогою подвійних або одинарних лапок, або зворотнього слешу.

xargs : [-0prtx] [-e[eof-ланцюжок]] [-i[ланцюжок-заміни]] [-l[кількість-рядків]] [-n кількість-аргументів] [-s кількість-символів] [-P кількість-процесів] [--null] [--eof[=eof-ланцюжок]] [--replace[=ланцюжок-заміни]] [--max-lines[=кількість-рядків]] [--interactive] [--max-chars=кількість-символів] [--verbose] [--exit] [--max-procs=кількість-процесів] [--max-args=кількість-аргументів] [--no-run-if-empty] [--version] [--help] [команда [початкові-аргументи]]

xargs може завершитись із наступним статусом:

0 : успішно

123 : якщо якийсь виклик команди завершився зі статусом 1-125

124 : якщо команда завершилась зі статусом 255

125 : якщо команду вбито якимось сигналом

126 : якщо команду неможливо запустити

127 : якщо команду не знайдено

1 : у випадку якоїсь іншої помилки

КЛЮЧІ

--null, -0 : Розгляне введені назви файлів як такі, що закінчуються нульовим символом '\0' замість пробілу, а лапки і зворотні слеші не як спеціальні знаки (тобто всі знаки розглянуто буквально). Вимикає ланцюжок кінця файлу, який оброблятиметься як і решта аргументів. --null корисний, коли ланцюжки аргументів можуть містити пробіли, лапки або обернені слеші. Програма find(1) з опцією -print0 спричинить вивід, придатний саме для цього режиму.

--eof[=eof-ланцюжок], -e[eof-ланцюжок] : Встановлює ланцюжок вказівки кінця файлу до вказаного eof-ланцюжка. Якщо ланцюжок кінця файлу зустрінеться на окремому рядку вводу, решту вводу ігноровано. Якщо eof-ланцюжок не вказано, кінця файлу не буде. Якщо опустити опцію --eof, вказівником кінця файлу буде "_" (на окремому рядку).

--help : Виведе підсумок можливих ключів xargs і завершить роботу.

--replace[=ланцюжок-заміни], -i[ланцюжок-заміни] : Поміняє ланцюжки-заміни початкових аргументів на назви, прочитані зі стандартного вводу. Також, неекрановані пробіли не завершують аргументів. Якщо ланцюжок-заміни опущено, використовуватиметься стандартні "{}" (як у випадку з "find --exec"). Автоматично включає опції -x і -l 1.

--max-lines[=кількість-рядків], -l[кількість-рядків] : Використає щонайбільше вказану кількість-рядків (не порожніх) на командний рядок; якщо не вказати аргумент кількість-рядків, вживатиметься 1. Хвостові пробіли спричиняють до того, що ввідні рядки логічно продовжуються на наступних рядках. Автоматично включає -x.

--max-args=кількість-аргументів, -n кількість-аргументів : Використати щонайбільше вказану кількість-аргументів на один командний рядок. Якщо розмір перевищено (дивіться опцію -s), використовуватиметься менше за вказану кількість аргуметнтів, хіба було використано -x, в разі якого xargs завершить роботу.

--interactive, -p : Запитуватиме користувача, чи виконувати кожний командний рядок і читати рядок з терміналу. Виконуватиме команду тільки якщо відповідь розпочинатиметься з "y" або "Y". Автоматично включає -t.

--no-run-if-empty, -r : Якщо стандартний ввід не містить символів, що не являються пробілами, не виконуватиме команди. За звичайних обставин, команду буде виконано принаймні один раз, якщо не було вводу.

--max-chars=кількість-символів, -s кількість-символів : Дозволити щонайбільше максимальну кількість-символів на один командний рядок, включаючи саму команду, початкові аргументи і завершувальні нульові символи ланцюжків-аргументів. Без задання цього значення, використовується до 20 кілобайт символів (досить багато).

--verbose, -t : Виводитиме командний рядок на стандарнтний пристрій помилок перед його виконанням.

--version : Виведе номер версії xargs і завершить роботу.

--exit, -x : Завершить програму, якщо розмір (дивіться опцію -s) перевищено.

--max-procs=кількість-процесів, -P кількість-процесів : Дозволити максимальну кількість-процесів; без задання - 1. Якщо кількість-процесів вказано як 0, xargs щонайбільше доволених процесів. Скористайтеся з -n разом з -P, у протилежному випадку, існує можливість лише одиничного виконання.

ПРИКЛАДИ

Простий приклад перенаправлення вводу у файл:

   $ xargs >> test_$$
   foo bar
   baz
   _

xargs надвучайно зручна у випадку, коли аргументи, надані команді перевищують максимальну кількість доволених. Аргументи можна передати через конвеєр, xargs дбаючи про кількість аргументів, переданих команді:

   $ find /usr/src/linux/ -type f -regex '.*\.[ch]$' | \
   xargs grep "kmalloc"

ДИВІТЬСЯ ТАКОЖ

find(1), ?locate(1)