BSD 4_4 release
[unix-history] / usr / src / usr.bin / xargs / xargs.1
index e7d2826..e703c43 100644 (file)
-.\" Copyright (c) 1990 The Regents of the University of California.
-.\" All rights reserved.
+.\" Copyright (c) 1990, 1991, 1993
+.\"    The Regents of the University of California.  All rights reserved.
 .\"
 .\" This code is derived from software contributed to Berkeley by
-.\" John B. Roll Jr.
+.\" John B. Roll Jr. and the Institute of Electrical and Electronics
+.\" Engineers, Inc.
 .\"
-.\" Redistribution and use in source and binary forms are permitted
-.\" provided that the above copyright notice and this paragraph are
-.\" duplicated in all such forms and that any documentation,
-.\" advertising materials, and other materials related to such
-.\" distribution and use acknowledge that the software was developed
-.\" by the University of California, Berkeley.  The name of the
-.\" University may not be used to endorse or promote products derived
-.\" from this software without specific prior written permission.
-.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\"    must display the following acknowledgement:
+.\"    This product includes software developed by the University of
+.\"    California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
 .\"
-.\"    @(#)xargs.1     5.1 (Berkeley) 4/17/90
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
 .\"
-.TH XARGS 1 "April 17, 1990"
-.UC 7
-.SH NAME
-xargs \- construct argument list(s) and execute utility.
-.SH SYNOPSIS
-.ft B
-xargs [\-t] [\-n number] [\-s size] [utility [argument ...]]
-.ft R
-.SH DESCRIPTION
+.\"    @(#)xargs.1     8.1 (Berkeley) 6/6/93
+.\"
+.Dd June 6, 1993
+.Dt XARGS 1
+.Os
+.Sh NAME
+.Nm xargs
+.Nd "construct argument list(s) and execute utility"
+.Sh SYNOPSIS
+.Nm xargs
+.Op Fl t
+.Oo Op Fl x
+.Fl n Ar number
+.Oc
+.Op Fl s Ar size
+.Op Ar utility Op Ar arguments ...
+.Sh DESCRIPTION
 The
-.I xargs utility
-reads space, tab, and newline delimited arguments from the standard
-input and executes the specified
-.I utility
-with them as arguments.
-Any arguments specified on the command line are given to the
-.I utility
+.Nm xargs
+utility reads space, tab, newline and end-of-file delimited arguments
+from the standard input and executes the specified
+.Ar utility
+with them as
+arguments.
+.Pp
+The utility and any arguments specified on the command line are given
+to the
+.Ar utility
 upon each invocation, followed by some number of the arguments read
 from standard input.
 The
-.I utility
+.Ar utility
 is repeatedly executed until standard input is exhausted.
-.PP
-Spaces and tabs may be embedded in arguments using single (`` ' '') or
-double (``"'') quotes or backslashes (``\e'').
-Single or double quotes escape all characters to the next matching quote
-character, backslashes escape the next character.
-Newlines may not be escaped.
-.PP
-The following options are available:
-.TP
--n number
-Set the maximum number of arguments used from standard input for
-each invocation of the utility.
+.Pp
+Spaces, tabs and newlines may be embedded in arguments using single
+(``\ '\ '')
+.Ek
+or double (``"'') quotes or backslashes (``\e'').
+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.
+.Pp
+The options are as follows:
+.Bl -tag -width indent
+.It Fl n Ar number
+Set the maximum number of arguments taken from standard input for each
+invocation of the utility.
 An invocation of
-.I utility
+.Ar utility
 will use less than
-.I number
+.Ar number
 standard input arguments if the number of bytes accumulated (see the
-.I \-s
-option) exceeds the specified size or the last invocation of
-.I utility
-has fewer than
-.I number
-arguments remaining.
-The default value for
-.I number
-is 255.
-.TP
--s size
-Set the maximum number of bytes to which the last component of the
-.I utility
-name, the command-line arguments, and the arguments read in from
-standard input may sum.
-The default value for
-.I size
-is 2048.
-.TP
--t
+.Fl s
+option) exceeds the specified
+.Ar size
+or there are fewer than
+.Ar number
+arguments remaining for the last invocation of
+.Ar utility .
+The current default value for
+.Ar number
+is 5000.
+.It Fl s Ar size
+Set the maximum number of bytes for the command line length provided to
+.Ar utility .
+The sum of the length of the utility name and the arguments passed to
+.Ar utility
+(including
+.Dv NULL
+terminators) will be less than or equal to this number.
+The current default value for
+.Ar size
+is
+.Dv ARG_MAX
+- 2048.
+.It Fl t
 Echo the command to be executed to standard error immediately before it
 is executed.
-.PP
+.It Fl x
+Force
+.Nm xargs
+to terminate immediately if a command line containing
+.Ar number
+arguments will not fit in the specified (or default) command line length.
+.El
+.Pp
 If no
-.I utility
+.Ar utility
 is specified,
-.IR echo (1)
+.Xr echo 1
 is used.
-.PP
-.I Utility
-should never read from the standard input.
-.PP
-.I Xargs
-exits with 0 if no error occurred, and 1 otherwise.
-.SH "SEE ALSO"
-echo(1)
-.SH STANDARDS
+.Pp
+Undefined behavior may occur if
+.Ar utility
+reads from the standard input.
+.Pp
+The
+.Nm xargs
+utility exits immediately (without processing any further input) if a
+command line cannot be assembled,
+.Ar utility
+cannot be invoked, an invocation of the utility is terminated by a signal
+or an invocation of the utility exits with a value of 255.
+.Pp
+The
+.Nm xargs
+utility exits with a value of 0 if no error occurs.
+If
+.Ar utility
+cannot be invoked,
+.Nm xargs
+exits with a value of 127.
+If any other error occurs,
+.Nm xargs
+exits with a value of 1.
+.Sh SEE ALSO
+.Xr echo 1 ,
+.Xr find 1
+.Sh STANDARDS
 The
-.I xargs
-utility is expected to be POSIX 1003.2 compliant.
+.Nm xargs
+utility is expected to be
+.St -p1003.2
+compliant.