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  [-0opt]  [-E eofstr] [-I replstr [-R replacements]] [-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.	 The  utility  is  repeatedly  executed	 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	 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 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 re-
	       placement 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 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 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 and	-R options are non-standard FreeBSD extensions
       which may not be	available on other operating systems.

HISTORY
       The xargs command 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	6.0			August 2, 2004			      XARGS(1)

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

home | help