I\'m pretty much confused on this. Need some clarifications.
Example 1 :
pgrep string | xargs ps
Example 2 :>
In general xargs is used like this
prog | xargs utility
where prog
is expected to output one or more newline/space separated results. The trick is that xargs
does not necessarily call utility
once for each result, instead it splits the results into sublists and calls utility
for every sublist. If you want to force xargs to call utility
for every single result you will need to invoke it with xargs -L1
.
Note that xargs
promises you that the sublist sent to utility
is shorter than ARG_MAX
(If you're curious, you can get the current value of ARG_MAX
using getconf ARG_MAX
.) This is how it avoids those dreaded "Argument list to long" errors.