construct argument list(s) and execute
[utility [argument ...]]
utility reads space, tab, newline, and
end-of-file delimited strings from the standard input and executes the
with the strings as
Any arguments specified on the command line are given to the
upon each invocation, followed by
some number of the arguments read from standard input. The
is repeatedly executed one or more
times until standard input is exhausted.
Spaces, tabs and newlines may be embedded in arguments using single
’) or double
’) quotes or backslashes
’). Single quotes escape all
non-single quote characters, excluding newlines, up to the matching single
quote. Double quotes escape all non-double quote characters, excluding
newlines, up to the matching double quote. Any single character, including
newlines, may be escaped by a backslash.
The options are as follows:
- Change xargs to expect NUL
\0’) characters as separators,
instead of spaces and newlines. The quoting mechanisms described above are
not performed. This option is expected to be used in concert with the
-print0 function in
- Use eofstr as a logical
- Execute utility for each
input line, replacing one or more occurrences of
replstr in up to
replacements (or 5 if no
-R flag is specified) arguments to
utility with the entire line of input.
The resulting arguments, after replacement is done, will not be allowed to
grow beyond 255 bytes; this is implemented by concatenating as much of the
argument containing replstr as possible,
to the constructed arguments to utility,
up to 255 bytes. The 255 byte limit does not apply to arguments to
utility which do not contain
replstr, and furthermore, no replacement
will be done on utility itself. Implies
- If this option is specified,
xargs will use the data read from standard
input to replace the first occurrence of
replstr instead of appending that data
after all other arguments. This option will not effect how many arguments
will be read from input (-n), or the size of
the command(s) xargs will generate
(-s). The option just moves where those
arguments will be placed in the command(s) that are executed. The
replstr must show up as a distinct
xargs. It will not be recognized if, for
instance, it is in the middle of a quoted string. Furthermore, only the
first occurrence of the replstr will be
replaced. For example, the following command will copy the list of files
and directories which start with an uppercase letter in the current
directory to destdir:
/bin/ls -1d [A-Z]* | xargs -J % cp -Rp %
- Call utility for every
number of non-empty lines read. A line
ending in unescaped white space and the next non-empty line are considered
to form one single line. If EOF is reached and fewer than
number lines have been read then
utility will be called with the available
- Set the maximum number of arguments taken from standard
input for each invocation of utility. An
invocation of utility will use less than
number standard input arguments if the
number of bytes accumulated (see the -s
option) exceeds the specified size or
there are fewer than number arguments
remaining for the last invocation of
utility. The current default value for
number is 5000.
- Reopen stdin as /dev/tty in
the child process before executing the command. This is useful if you want
xargs to run an interactive application.
- Parallel mode: run at most
maxprocs invocations of
utility at once.
- Echo each command to be executed and ask the user whether
it should be executed. An affirmative response,
y’ in the POSIX locale, causes the
command to be executed, any other response causes it to be skipped. No
commands are executed if the process is not attached to a terminal.
- Specify the maximum number of arguments that
-I will do replacement in. If
replacements is negative, the number of
arguments in which to replace is unbounded.
- Do not run the command if there are no arguments. Normally
the command is executed at least once even if there are no arguments.
- Set the maximum number of bytes for the command line length
provided to utility. The sum of the
length of the utility name, the arguments passed to
NUL terminators) and the current
environment will be less than or equal to this number. The current default
value for size is
ARG_MAX - 4096.
- Echo the command to be executed to standard error
immediately before it is executed.
- Force xargs to terminate
immediately if a command line containing
number arguments will not fit in the
specified (or default) command line length.
If no utility
Undefined behavior may occur if utility
from the standard input.
utility exits immediately (without
processing any further input) if a command line cannot be assembled,
cannot be invoked, an invocation of
is terminated by a signal, or an
invocation of utility
exits with a value of
exits with one of the following values:
- All invocations of utility
returned a zero exit status.
- One or more invocations of
utility returned a nonzero exit
- The utility exited with a
255 exit status.
- The utility was killed or
stopped by a signal.
- The utility was found but
could not be executed.
- The utility could not be
- Some other error occurred.
utility is compliant with the
IEEE Std 1003.1-2008
The flags [-IL
] are marked
by IEEE Std 1003.1-2008
as being an X/Open System Interfaces option.
The flags [-0JoPRr
extensions to IEEE Std 1003.1-2008
The meanings of the 123, 124, and 125 exit values were taken from GNU
command appeared in PWB
attempts to invoke another command
such that the number of arguments or the size of the environment is increased,
it risks execvp(3)