18.104.22.168 Limiting Command Size
xargs gives you control over how many arguments it passes to
the command each time it executes it. By default, it uses up to
ARG_MAX - 2k, or 128k, whichever is smaller, characters per
command. It uses as many lines and arguments as fit within that
limit. The following options modify those values.
- If the standard input does not contain any nonblanks, do not run the
command. By default, the command is run once even if there is no
input. This option is a GNU extension.
- Use at most max-lines nonblank input lines per command line;
max-lines defaults to 1 if omitted; omitting the argument is not
allowed in the case of the ‘-L’ option. Trailing blanks cause an
input line to be logically continued on the next input line, for the
purpose of counting the lines. Implies ‘-x’. The preferred name
for this option is ‘-L’ as this is specified by POSIX.
- Use at most max-args arguments per command line. Fewer than
max-args arguments will be used if the size (see the ‘-s’
option) is exceeded, unless the ‘-x’ option is given, in which
xargs will exit.
- Use at most max-chars characters per command line, including the
command initial arguments and the terminating nulls at the ends of the
argument strings. If you specify a value for this option which is too
large or small, a warning message is printed and the appropriate upper
or lower limit is used instead. You can use ‘--show-limits’
option to understand the command-line limits applying to
and how this is affected by any other options. The POSIX limits shown
when you do this have already been adjusted to take into account the
size of your environment variables.
The largest allowed value is system-dependent, and is calculated as
the argument length limit for exec, less the size of your environment,
less 2048 bytes of headroom. If this value is more than 128KiB,
128Kib is used as the default value; otherwise, the default value is