Content-type: text/html
Manpage of XAGS
XAGS
Section: Misc. Reference Manual Pages (1L)
Index
Return to Main Contents
NAME
xags - build and execute command lines from standard input
SYNOPSIS
xags
[-0prtx] [-e[eof-str]] [-i[replace-str]] [-l[max-lines]]
[-n max-args] [-s max-chars] [-P max-procs] [--null] [--eof[=eof-str]]
[--replace[=replace-str]] [--max-lines[=max-lines]] [--interactive]
[--max-chars=max-chars] [--verbose] [--exit] [--max-procs=max-procs]
[--max-args=max-args] [--no-run-if-empty] [--version] [--help]
[-L] [--nosplit-lines]
[command [initial-arguments]]
DESCRIPTION
This manual page
documents the perl version of
xags
which is based off the GNU version of
xargs.
xags
reads arguments from the standard input, delimited by blanks (which can be
protected with double or single quotes or a backslash) or newlines,
and executes the
command
(default is /bin/echo) one or more times with any
initial-arguments
followed by arguments read from standard input. Blank lines on the
standard input are ignored.
xags
exits with the following status:
0 if it succeeds
123 if any invocation of the command exited with status 1-125
124 if the command exited with status 255
125 if the command is killed by a signal
126 if the command cannot be run
127 if the command is not found
1 if some other error occurred.
OPTIONS
- --null, -0
-
Input filenames are terminated by a null character instead of by
whitespace, and the quotes and backslash are not special (every
character is taken literally). Disables the end of file string, which
is treated like any other argument. Useful when arguments might
contain white space, quote marks, or backslashes. The GNU find
-print0 option produces input suitable for this mode.
- --eof[=eof-str], -e[eof-str]
-
Set the end of file string to eof-str. If the end of file
string occurs as a line of input, the rest of the input is ignored.
If eof-str is omitted, there is no end of file string. If this
option is not given, the end of file string defaults to "_".
- --help
-
Print a summary of the options to
xags
and exit.
- --replace[=replace-str], -i[replace-str]
-
Replace occurences of replace-str in the initial arguments with
names read from standard input.
Also, unquoted blanks do not terminate arguments.
If replace-str is omitted, it
defaults to "{}" (like for `find -exec'). Implies -x and
-l 1.
- --max-lines[=max-lines], -l[max-lines]
-
Use at most max-lines nonblank input lines per command line;
max-lines defaults to 1 if omitted. Trailing blanks cause an
input line to be logically continued on the next input line. Implies
-x.
- --max-args=max-args, -n max-args
-
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 case xags
will exit.
- --interactive, -p
-
Prompt the user about whether to run each command line and read a line
from the terminal. Only run the command line if the response starts
with `y' or `Y'. Implies -t.
- --no-run-if-empty, -r
-
If the standard input does not contain any nonblanks, do not run the
command. Normally, the command is run once even if there is no input.
- --max-chars=max-chars, -s max-chars
-
Use at most max-chars characters per command line, including the
command and initial arguments and the terminating nulls at the ends of
the argument strings. The default is as large as possible, up to 20k
characters.
- --verbose, -t
-
Print the command line on the standard error output before executing
it.
- --version
-
Print the version number of
xags
and exit.
- --exit, -x
-
Exit if the size (see the -s option) is exceeded.
- --max-procs=max-procs, -P max-procs
-
Run up to max-procs processes at a time; the default is 1. If
max-procs is 0, xags will run as many processes as
possible at a time. Use the -n option with -P;
otherwise chances are that only one exec will be done.
DIFFERENCES
This program is a black-box rewrite of GNU xargs version 4.1 (meaning
that it was based off of extensive testing of GNU xargs output based
on various input, and not through looking at any of the xargs internals
or source code). As an aside, this means this code is
not
under the GPL (see
LICENSE
below).
All the differences can be seen if you specify the --version option:
0) --version is different, obviously
1) Can properly shell quote input lines
2) Can handle "-i -n"
3) Additional option: -L/--nosplit-lines
4) --max-chars is only bounded by memory (instead
of 20k) if not set
5) Properly exits if size exceeded
only
when
--exit specified
6) Poorly distinguishes between exit 126 and exit 127
7) Starts commands as soon as it's read enough input (as opposed to
getting all of stdin first)
8) Ordering of options doesn't matter
LICENSE
This code is free for non-commercial use. See the full license at
http://MarginalHacks.com/License
NEW OPTIONS
- --nosplit-lines, -L
-
Treat each line as an single string which gets passed as a complete argument
to the command. As an example, this will make a big difference for:
-
find . | xags -L chmod +r
-
if any files have spaces in them. As an example, assume we have the files
"a," "b," and "file with space." Without the -L option,
xags
will simply try to run "chmod -r a b file with space" which will try to chmod
5 files, instead of 3. We want to send "file with space" as one argument, and
-L will do that.
SEE ALSO
xargs(1L), perl(1), find(1L), locate(1L),
locatedb(5L), updatedb(1)
Finding Files (on-line in Info, or printed)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- DIFFERENCES
-
- LICENSE
-
- NEW OPTIONS
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 12:20:48 GMT, July 09, 2001