39 lines
2.3 KiB
Markdown
Raw Normal View History

# xargs
> Выполнять команду с аргументами, переданными по конвейеру из другой команды, файла и т.д.
> Ввод обрабатывается как единый блок текста и разбивается на части по пробелам, табуляциям, переводам строк и концу файла.
> Смотрите также: `parallel`.
> Больше информации: <https://www.gnu.org/software/findutils/manual/html_mono/find.html#Invoking-xargs>.
- Выполнить команду, используя входные данные как аргументы:
`{{источник_аргументов}} | xargs {{команда}}`
- Выполнить несколько команд в цепочке над входными данными:
`{{источник_аргументов}} | xargs sh -c "{{команда1}} && {{команда2}} | {{команда3}}"`
- Выполнить новую команду для каждого аргумента:
`{{источник_аргументов}} | xargs {{[-n|--max-args]}} 1 {{команда}}`
- Увеличить лимит параллельных процессов до 10 (по умолчанию 1; 0 означает максимально возможное число):
`{{источник_аргументов}} | xargs {{[-P|--max-procs]}} 10 {{[-n|--max-args]}} {{1}} {{команда}}`
- Выполнить команду для каждой входной строки, заменяя вхождения заполнителя (здесь `_`) на входную строку:
`{{источник_аргументов}} | xargs -I _ {{команда}} _ {{дополнительные_аргументы}}`
- Запросить подтверждение перед выполнением команды (подтвердить `y` или `Y`):
`{{источник_аргументов}} | xargs {{[-p|--interactive]}} {{команда}}`
- Прочитать аргументы для команды из файла:
`xargs {{[-a|--arg-file]}} {{путь/к/файлу}} {{команда}}`
- Разрешить команде доступ к терминалу для интерактивного ввода:
`{{источник_аргументов}} | xargs {{[-o|--open-tty]}} {{команда}}`