Описание тега xargs
xargs это команда для построения и выполнения команд из стандартного ввода. xargs читает разделенные строки и выполняет утилиты командной строки со строками в качестве аргументов.
Обычно передают строки xargs через стандартный вывод с использованием трубы (|).
Тем не мение, xargs можно сказать прочитать из другого файла вместо стандартного ввода, передав --arg-file или же -a вариант, как показано, например, в этом ответе. Это делает удивительно универсальную утилиту.
xargs предоставляется findutils пакет, который является частью установки Ubuntu по умолчанию во всех текущих версиях. Этот пакет также обеспечивает find, Две команды могут использоваться вместе, например:
find path tests | xargs commandsпоскольку xargs обычно разделяется на пробелы, желательно передать ему списки, разделенные нулем, и использовать -0 флаг:
find ... -print0 | xargs -0 ...
find может выполнять команды на найденные файлы (либо с помощью встроенных действий или с помощью -exec) так xargs может понадобиться редко, но locate не может выполнять команды по своим результатам, поэтому xargs может быть полезно с locate, снова используя нулевой разделитель, если имена файлов могут содержать пробелы:
locate -0 pattern | xargs -0 commandВозможность передавать альтернативные файлы в STDIN для xargs позволяют использовать его за пределами классического использования, упомянутого выше. Например, вместо таких конструкций, как:
command $(cat file)Мы можем использовать что-то вроде:
xargs -a file command