Описание тега 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