Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XARGS(1)		    General Commands Manual		      XARGS(1)

NAME
       xargs --	construct argument list(s) and execute utility

SYNOPSIS
       xargs [-0oprt] [-E eofstr] [-I replstr [-R replacements]	[-S replsize]]
	     [-J replstr] [-L number] [-n number [-x]] [-P maxprocs] [-s size]
	     [utility [argument	...]]

DESCRIPTION
       The  xargs  utility reads space,	tab, newline and end-of-file delimited
       strings from the	standard input and executes utility with  the  strings
       as arguments.

       Any  arguments  specified on the	command	line are given to utility upon
       each invocation,	followed by some number	of the arguments read from the
       standard	input of xargs.	 This is repeated until	standard input is  ex-
       hausted.

       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	 back-
       slash.

       The options are as follows:

       -0      Change  xargs  to expect	NUL (``\0'') characters	as separators,
	       instead of spaces and newlines.	This is	expected to be used in
	       concert with the	-print0	function in find(1).

       -E eofstr
	       Use eofstr as a logical EOF marker.

       -I replstr
	       Execute utility for each	input line, replacing one or more  oc-
	       currences  of replstr in	up to replacements (or 5 if no -R flag
	       is specified) arguments to utility with the entire line of  in-
	       put.   The resulting arguments, after replacement is done, will
	       not be allowed to grow beyond replsize (or 255 if no -S flag is
	       specified) bytes; this is implemented by	concatenating as  much
	       of  the	argument  containing  replstr as possible, to the con-
	       structed	arguments to utility, up to replsize bytes.  The  size
	       limit  does not apply to	arguments to utility which do not con-
	       tain replstr, and furthermore, no replacement will be  done  on
	       utility itself.	Implies	-x.

       -J replstr
	       If  this	option is specified, xargs will	use the	data read from
	       standard	input to replace the first occurrence of  replstr  in-
	       stead  of  appending that data after all	other arguments.  This
	       option will not affect how many arguments will be read from in-
	       put (-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 argument to xargs.	 It will not be	recog-
	       nized 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 % destdir

       -L number
	       Call utility for	every number lines read.  If  EOF  is  reached
	       and fewer lines have been read than number then utility will be
	       called with the available lines.

       -n number
	       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.

       -o      Reopen stdin as /dev/tty	in the child process before  executing
	       the command.  This is useful if you want	xargs to run an	inter-
	       active application.

       -P maxprocs
	       Parallel	 mode:	run at most maxprocs invocations of utility at
	       once.

       -p      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.

       -r      Compatibility with GNU xargs.  The GNU version  of  xargs  runs
	       the  utility  argument  at  least  once,	even if	xargs input is
	       empty, and it supports a	-r option to  inhibit  this  behavior.
	       The  FreeBSD version of xargs does not run the utility argument
	       on empty	input, but it supports the -r option for  command-line
	       compatibility with GNU xargs, but the -r	option does nothing in
	       the FreeBSD version of xargs.

       -R replacements
	       Specify	the  maximum  number  of arguments that	-I will	do re-
	       placement in.  If replacements is negative, the number of argu-
	       ments in	which to replace is unbounded.

       -S replsize
	       Specify the amount of space (in bytes) that -I can use for  re-
	       placements.  The	default	for replsize is	255.

       -s size
	       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 utility (including NULL termina-
	       tors) and the current environment will be less than or equal to
	       this number.  The current default value for size	is  ARG_MAX  -
	       4096.

       -t      Echo  the  command to be	executed to standard error immediately
	       before it is executed.

       -x      Force xargs to terminate	immediately if a command line contain-
	       ing number arguments will not fit in the	specified (or default)
	       command line length.

       If utility is omitted, echo(1) is used.

       Undefined behavior may occur if utility reads from the standard input.

       The xargs utility exits immediately (without processing any further in-
       put) if a command line cannot be	assembled, utility cannot be  invoked,
       an invocation of	utility	is terminated by a signal, or an invocation of
       utility exits with a value of 255.

EXIT STATUS
       The  xargs  utility  exits  with	 a  value of 0 if no error occurs.  If
       utility cannot be found,	xargs exits with a value of 127, otherwise  if
       utility	cannot	be  executed, xargs exits with a value of 126.	If any
       other error occurs, xargs exits with a value of 1.

SEE ALSO
       echo(1),	find(1), execvp(3)

STANDARDS
       The xargs utility is expected to	be IEEE	Std 1003.2 ("POSIX.2") compli-
       ant.  The -J, -o, -P, -R	and -S options are non-standard	FreeBSD	exten-
       sions which may not be available	on other operating systems.

HISTORY
       The xargs utility appeared in PWB UNIX.

BUGS
       If utility attempts to invoke another command such that the  number  of
       arguments  or  the  size	 of  the  environment  is  increased, it risks
       execvp(3) failing with E2BIG.

       The xargs utility does not take multibyte characters into account  when
       performing string comparisons for the -I	and -J options,	which may lead
       to incorrect results in some locales.

FreeBSD	7.1		       January 26, 2008			      XARGS(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=xargs&manpath=FreeBSD+7.1-RELEASE>

home | help