1
0
Fork 0
mirror of https://github.com/tldr-pages/tldr.git synced 2025-04-29 23:24:55 +02:00
tldr/pages/common/xargs.md

30 lines
1.3 KiB
Markdown
Raw Normal View History

2014-03-12 18:25:30 +01:00
# xargs
> Execute a command with piped arguments coming from another command, a file, etc.
> The input is treated as a single block of text and split into separate pieces on spaces, tabs, newlines and end-of-file.
> More information: <https://pubs.opengroup.org/onlinepubs/9699919799/utilities/xargs.html>.
2014-03-12 18:25:30 +01:00
- Run a command using the input data as arguments:
2014-03-12 18:25:30 +01:00
`{{arguments_source}} | xargs {{command}}`
2014-03-12 18:25:30 +01:00
- Run multiple chained commands on the input data:
`{{arguments_source}} | xargs sh -c "{{command1}} && {{command2}} | {{command3}}"`
- Gzip all files with `.log` extension taking advantage of multiple threads (`-print0` uses a null character to split file names, and `-0` uses it as delimiter):
`find . -name '*.log' -print0 | xargs {{[-0|--null]}} {{[-P|--max-procs]}} {{4}} {{[-n|--max-args]}} 1 gzip`
2014-03-12 18:25:30 +01:00
- Execute the command once per argument:
`{{arguments_source}} | xargs {{-n|--max-args}} 1 {{command}}`
- Execute the command once for each input line, replacing any occurrences of the placeholder (here marked as `_`) with the input line:
2014-03-12 18:25:30 +01:00
`{{arguments_source}} | xargs -I _ {{command}} _ {{optional_extra_arguments}}`
- Parallel runs of up to `max-procs` processes at a time; the default is 1. If `max-procs` is 0, xargs will run as many processes as possible at a time:
`{{arguments_source}} | xargs {{[-P|--max-procs]}} {{max-procs}} {{command}}`