aboutsummaryrefslogtreecommitdiff
path: root/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/doc
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/doc')
-rw-r--r--coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/doc/ChangeLog1219
-rw-r--r--coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/doc/coreutils.info14780
2 files changed, 15999 insertions, 0 deletions
diff --git a/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/doc/ChangeLog b/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/doc/ChangeLog
new file mode 100644
index 0000000..9cf6bf9
--- /dev/null
+++ b/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/doc/ChangeLog
@@ -0,0 +1,1219 @@
+2005-01-07 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (sort invocation): Specify that a string
+ of zero digits is interpreted as 0. Reported by Ulrich Hermisson.
+
+2005-01-04 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (shred invocation): Clarify that shred works fine
+ with journaled file systems that are configured not to journal
+ file system data. Also mention BFS and NTFS.
+
+2004-12-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (ls invocation): Change minor problem to be
+ "subdirectory not found", since top-level trouble is now serious.
+ (dircolors invocation): Quote argument to eval. Problem reported
+ by Stephane Chazelas.
+
+2004-12-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (join invocation): Mention that blank separators
+ in the -o option need to be quoted. Problem reported by Phil Clayton.
+
+2004-12-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (id invocation): -G also prints main group.
+ Problem reported by Tim Waugh.
+
+2004-12-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (ls invocation): Document new "ls" exit status.
+
+2004-12-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * getdate.texi (Time of day items, Time zone items):
+ Describe new formats +00:00, UTC+00:00.
+
+2004-12-04 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (cut invocation): Say when --complement is useful.
+
+2004-10-01 Paolo Bonzini <bonzini@gnu.org>
+
+ * coreutils.texi (cut invocation): Document --complement and
+ adjust the documentation of -b, -c, -f.
+
+2004-11-27 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (du invocation): Use if=/dev/null rather
+ than :|. Problem reported by Dan Jacobson.
+ Use "seek=2GiB" rather than the wordier "seek=`echo '2^31'|bc`".
+ Say "KiB" not the (inaccurate) "kilobytes".
+ Similarly for "GiB" and "gigabytes".
+
+2004-11-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi: Changes inspired by Debian coreutils 5.2.1-2.
+ (General output formatting): -x doesn't have an operand.
+ (Formatting the file names): Warn that even with -N unprintable
+ chars are still printed as '?' some times.
+ (rm invocation): Reword rm -d to note that it's sometimes useful
+ on non-directories.
+ (logname invocation, users invocation, who invocation):
+ The utmp and wtmp file names vary from system to system.
+
+ * getdate.texi (General date syntax): "next" is 1, not 2.
+ Document that "second" isn't allowed as an ordinal number.
+
+2004-11-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (dd invocation): Reword the new dd message.
+
+2004-11-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (dd invocation): dd now outputs total bytes,
+ seconds, and bytes per second.
+
+2004-11-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * Makefile.am (_W, W_): New macros.
+ (check-texinfo): Use them instead of assuming grep -w (which is not
+ portable).
+
+2004-10-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi: Document TZ better, and adjust to new getdate.texi.
+ (Top): Update menu.
+ (pr invocation, Formatting file timestamps, touch invocation,
+ stat invocation, who invocation, date invocation, Options for date):
+ Mention TZ.
+ * getdate.texi: Sync from gnulib.
+
+2004-10-28 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (Standards conformance): Use "head -10" rather
+ than "head -1" as example of obsolete usage, since the POSIX
+ consensus is that "head -1" could be supported even if we don't
+ yet have clear consensus on "head -10". See today's revision to
+ the SUS FAQ
+ <http://www.opengroup.org/austin/papers/single_unix_faq.html>.
+
+2004-10-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (pathchk invocation): Options must precede operands.
+
+2004-10-17 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (pathchk invocation): Overall lengths are
+ OS limits, not file system limits. Component length checks
+ apply to all components, not merely to existing ones. Say
+ that nonexistent names are not errors. For -p, omit all
+ checks based on the underlying file system, not merely length
+ checks. Explain what the portable file name character set is.
+
+2004-10-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (printf invocation): Mention ISO/IEC 10646 as
+ well as Unicode. Various minor formatting cleanups.
+
+2004-10-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (sort invocation): Move LC_ALL, LC_COLLATE
+ index entries to proper paragraph.
+
+2004-10-12 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (check-texinfo): Add `builtin' and `builtins' to
+ the list of words to avoid.
+
+2004-10-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (Special built-in utilities): New node.
+ (printf invocation): builtin -> built-in, for consistency
+ with POSIX terminology.
+ (test invocation, pwd invocation):
+ Use specific rather than generic language to warn about
+ built-in commands.
+ (chroot invocation, env invocation, nice invocation, nohup invocation):
+ Warn that command must not be a special built-in.
+ (env invocation): Warn about environment variables with unusual
+ spellings, or duplicates.
+
+2004-09-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (ls invocation): Document "ls --hide".
+
+2004-09-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (chmod invocation): Warn about "chmod -w file".
+
+2004-09-23 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (tail invocation): Fix bugs in the description of
+ the obsolete syntax (e.g., it does not support -k or -m). Warn
+ about usages like "tail -" and "tail -c 4" that are ambigous on
+ older systems.
+
+2004-09-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (mv invocation, rm invocation): Say "the response
+ is affirmative" rather than "the response begins with y or Y",
+ so that the documentation is accurate in non-English locales.
+ Problem reported by Munzir Taha.
+
+2004-09-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (dd invocation): Distinguish between options
+ (e.g., --help) and operands (e.g., if=file). Move miscellaneous
+ stuff after the operand descriptions, for clarity.
+
+2004-09-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (sort invocation): -u disables the last-resort
+ comparison, too. Revamp its description.
+ (test invocation): Document -r, -w, -x more carefully.
+
+2004-09-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (Common options): Some programs don't reorder
+ options.
+ (tr invocation, echo invocation, printf invocation, test invocation,
+ expr invocation, basename invocation, chroot invocation,
+ nice invocation, nohup invocation, seq invocation):
+ This program doesn't reorder options.
+ (tr invocation): Mention --help, --version, --.
+ (echo invocation): Mention that -- isn't special.
+ (test invocation): Mention that the expression is optional,
+ and that test ! EXPR is like ! test EXPR.
+ Mention that -h and -L don't dereference symlinks.
+ (expr invocation): Mention --help, --version.
+
+ * coreutils.texi (sort invocation): Add remarks about sort -u
+ versus sort | uniq. Prompted by a question from Andrew Noymer.
+
+2004-09-06 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (od invocation): Several changes for POSIX
+ and FreeBSD compatibility. Add support for XSI syntax
+ (POSIX 1003.1-2004). Rename -s[N] to -S N. Remove documentation
+ for -h. -i is now -t dI (not d2) and -l is now -t dL (not d4).
+
+2004-09-05 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (String tests): Improve quality of warning about
+ quoting strings for the shell.
+
+2004-09-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (dd invocation): Specify which conversion options
+ are mutually exclusive. Give a bit more detail about ascii,
+ ebcdic, and ibm conversions.
+
+2004-08-24 Paul Eggert <eggert@cs.ucla.edu>
+
+ POSIX-conformance fixes for "expand" and "unexpand".
+ * coreutils.texi: Standardize on "tab stop" (the POSIX usage)
+ rather than "tabstop".
+ (unexpand invocation): Use "blank" rather than "space" when
+ POSIX requires "blank". Define "blank". Initial blanks are
+ converted even if there's just one. For -a, convert two or
+ more blanks only if they occur just before a tab stop.
+
+2004-08-19 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (chown invocation): Fix synopsis:
+ group must always be preceded by separator.
+ "chown : file" and "chown '' file" don't change the owner or group.
+ Update the explanation of what happens to the set-user-ID or
+ set-group-ID bits, e.g., they sometimes are not cleared if they
+ denote mandatory locking. Change "find"-oriented examples to use
+ chown -h.
+
+2004-08-18 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (printf invocation): Clarify how "printf" is
+ supposed to work with extra arguments, missing arguments, etc.
+
+2004-08-10 Paul Eggert <eggert@cs.ucla.edu>
+
+ POSIX-conformance fixes for "-" used as an operand.
+ * coreutils.texi (Common options): Clarify that "-" means
+ stdin/stdout only when it is an operand, not when it is an
+ option-argument.
+ (shred invocation): "shred -- -" is equivalent to "shred -",
+ not to "shred ./-".
+ (tee invocation): "tee -" means to copy (again) to stdout.
+
+2004-07-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (nice invocation): Document the "nice value", and
+ how it affects the scheduling priority. (The old documentation
+ implied that the nice value equaled the scheduling priority, which
+ isn't accurate.) Document that the range of nice values might
+ exceed -20..19. Specify what happens when you give a nice value
+ that is out of range, or when you don't have permissions to lower
+ the nice value. Bash doesn't have a builtin 'nice', so don't say
+ "most shells" have one.
+
+2004-04-03 Dmitry V. Levin <ldv@altlinux.org>
+
+ * coreutils.texi (readlink invocation): Document new
+ "readlink -f" behaviour and new canonicalize options, -e and -m.
+
+2004-07-02 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (check-texinfo): Disallow `filename' in .texi files.
+ Spell it like `file name' instead, to be consistent.
+ Fail if a @footnote directive follows non-punctuation.
+ Fail upon use of @url. Use @uref instead.
+
+2004-07-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (Common options, Target directory, cp invocation,
+ install invocation, mv invocation, ln invocation): Add -t as a
+ short option for --target-directory, and -T as a short option for
+ --no-target-directory. Clean up relevant synopses a bit, so that
+ the language is similar for all.
+
+2004-06-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi: Put the right amount of space at sentence ends.
+ Make sure "i.e." and "e.g." are followed by commas (the GNU style).
+ Put blank lines before and after every @example, prefer the
+ previous line to end in ":" (when not a sentence end, for consistency),
+ and prepend @noindent to the following line when appropriate.
+ In examples, use "--" arguments when needed to prevent undesired
+ interpretation of operands as options.
+ Use "file name" rather than "filename", as per the GNU coding standards.
+ Remove unwanted spaces before @footnote.
+ Use "---" when appropriate, instead of " -- ".
+ Use "name" (or something like that) rather than "path" or "pathname",
+ since the GNU coding standards don't allow "path".
+ Use @acronym, @command, @minus{}, @samp in a few places,
+ where appropriate.
+ (Target directory): Clarify description of example.
+ (fmt invocation): Give issue number for reference, and reword
+ for clarity.
+ (sort invocation): Note that xargs without -0 also mishandles
+ file names containing some special characters other than newline.
+ (Translating): Mention that \012 is not universally portable.
+ Use '\0' rather than '\000'.
+ (Squeezing): bourne -> Bourne.
+ Fix unportable usage of '\n' by replacing it with '[\n*]'.
+ (More details about version sort): Remove unnecessary indent
+ in examples.
+ (dd invocation): Use 'kill -s USR1', not 'kill -USR1', as POSIX
+ indicates that the former is more portable (the latter is an XSI
+ extension).
+ (shred invocation): Use @uref rather than @url, and use a more-typical
+ style for the date.
+ (kill invocation): Clarify usage; for example, "kill -s TERM -1"
+ isn't allowed.
+ (seq invocation): Reword to avoid implying that printf necessarily
+ fails for numbers outside the 32-bit range. Prefer separating
+ options from their operands.
+ (Opening the software toolbox): Give an online reference to
+ Robbins's article, and give a date. Don't imply that the
+ current documentation is unchanged from his article.
+ (Putting the tools together): Rework examples so that they don't
+ assume the C locale; nowadays many users now operate outside the C
+ locale by default. While we're at it, don't assume ASCII either.
+ Indent example to match actual output from GNU uniq. Remove some
+ unnecessary and confusing brackets from 'tr' operands. "Software
+ Tools in Pascal" is back in print, according to Amazon anyway.
+ Add references to Kernighan's online copies of examples.
+
+2004-06-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi, perm.texi: Standardize on "file system" rather
+ than "filesystem", as POSIX prefers it with a space.
+
+2004-06-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (Common options, Target directory, cp
+ invocation, install invocation, mv invocation, ln invocation):
+ Likewise.
+ (link invocation): Explain how to rewrite link using ln now
+ that we have --no-target-directory.
+ (ln invocation): Explain that --no-target-directory subsumes
+ --no-dereference.
+ (unlink invocation): Modify wording to match new wording in
+ link invocation.
+
+2004-06-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (install invocation): Document
+ --target-directory in synopsis, too.
+
+2004-06-15 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (yes invocation): "--" is now supported.
+ (false invocation, true invocation): --help and --version now
+ work unconditionally.
+
+2004-06-07 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi: Remove menu references to just-removed subsection.
+
+2004-06-06 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (tr invocation): Remove the section describing
+ how POSIXLY_CORRECT changes tr's behavior.
+
+2004-06-02 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (cut invocation): Clarify what --output-delimiter=STR
+ does with byte/character ranges.
+
+2004-06-01 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (tr invocation): Mention -C.
+
+2004-05-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (echo invocation): Document today's changes.
+
+2004-05-17 Jim Meyering <jim@meyering.net>
+
+ chgrp and chown now dereference symlinks by default, per POSIX.
+ * coreutils.texi (chgrp invocation, chown invocation): Document it.
+
+2004-05-13 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (sort invocation): Document that "sort -m -o F"
+ might write F before reading all the input.
+
+2004-05-09 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (stat invocation): Change IO to I/O.
+ * Makefile.am (check-texinfo): Check for the above.
+
+2004-04-25 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (sort invocation): Mention -k earlier, so
+ that the options are in alphabetical order. Describe how -b works
+ more-accurately; this involves fixing some examples, too. Mention
+ what happens if the start field falls after an end field or after
+ a line end. Warn about using -k without -b, -g, -M, -n, or -t.
+ Add an example of how to sort IPv4 addresses and Apache Common
+ Log Format dates. Remove a duplicate example.
+ (Putting the tools together): Use separate options rather
+ than agglomerating them.
+
+2004-03-27 Paul Eggert <eggert@twinsun.com>
+
+ cp -pu and mv -u (when copying) now take the destination
+ file system time stamp resolution into account.
+
+ * coreutils.texi (mv invocation): Document this.
+ (cp invocation): Document -u (it was missing!) with new behavior.
+
+2004-04-08 Paul Eggert <eggert@cs.ucla.edu>
+
+ * coreutils.texi (dd invocation): Remove noctty flag from dd.
+
+2004-04-07 Paul Eggert <eggert@twinsun.com>
+
+ New dd conv= symbols nocreat, excl, fdatasync, fsync,
+ and new dd options iflag= and oflag=.
+
+ * coreutils.texi (dd invocation): Document them.
+
+2004-04-07 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (stty invocation - Input): Document new iutf8 option.
+
+2004-04-04 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (stat invocation): Correct --format description.
+
+2004-02-25 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (Block size): Document new envvar BLOCKSIZE.
+
+2004-03-24 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (check-texinfo): Add a check to ensure future
+ consistency in using @sc{nul}, not `NUL'.
+
+2004-03-23 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi: Use @sc{nul} consistently for NUL.
+ (du invocation): FILE0 -> FILE.
+
+2004-03-23 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (du invocation): --files0-from is useful with
+ --total (-c), not with --summarize.
+
+2004-03-22 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi: Tweak a few lines that resulted in
+ `overfull hbox' warnings.
+
+2004-03-03 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (du invocation): Document new option: --file0-from=F.
+
+2004-02-29 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (touch invocation):
+ Describe use of fractional seconds.
+ (date invocation, Options for date): Likewise.
+ * getdate.texi (General date syntax, Time of day items): Likewise.
+ * coreutils.texi (date invocation): Mention effect of LC_TIME.
+ (Options for date): Describe new --iso-8601=ns option.
+
+ * getdate.texi: Add copyright notice. Change getdate to
+ get_date when talking about the function name.
+ (Seconds since the Epoch): New section, containing the time_t
+ info moved from Date input formats section, along with new
+ info about the @ syntax. Mention negative time stamps,
+ fractional time stamps, and leap seconds.
+ (General date syntax): Modernize examples a bit to reflect new
+ features.
+ (General date syntax, Relative items in date strings):
+ Use ' rather than " to quote formats.
+ (Time of day items): Add an example with fractional seconds.
+ Describe fractional-second syntax.
+
+2004-03-15 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (date invocation): Add missing `C' to %[...] range
+ in the `Date directives:: ...' menu entry. From Bob Proulx.
+
+ * coreutils.texi: Add FIXME comment:
+ The following don't have `invocation' nodes: [, pinky, shasum, uptime.
+
+2004-03-10 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Sorting the output): Remove description of
+ ls's --sort=directory option. ls doesn't accept that option, yet.
+ Reported by Arvind Autar.
+
+ * coreutils.texi (cp invocation): Improve description of
+ cp's --sparse=WHEN option.
+
+ * coreutils.texi (nl invocation): Specify that these are _basic_
+ regular expressions (BRE), and add a link to grep's documentation.
+ Suggestion from Dan Jacobson.
+
+2004-02-23 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (chown invocation): Document that chown now falls
+ back on USER.GROUP parsing regardless of POSIX version, as POSIX
+ 1003.1-2001 allows that behavior as a compatible extension.
+
+2004-02-22 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (du invocation): Mention that using du's -H option
+ currently evokes a warning.
+
+2004-02-15 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (expr invocation):
+ Document what forms integers may take, and say "integer"
+ consistently instead of "number". Warn about operands
+ that "expr" can misinterpret, and how to work around the
+ problem.
+
+2004-02-17 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (csplit invocation): Correct typo (s/LINE/N/)
+ in description of `N' pattern. From Reuben Thomas <rrt@sc3d.org>
+
+2004-02-11 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Time directives): The %s value *is* changed by the
+ --date=DATE option; don't say otherwise. Patch from Padraig Brady.
+
+2004-02-10 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (Formatting the file names):
+ Improve wording for --quoting-style documentation.
+ Suggestions by Bruno Haible.
+
+2004-02-02 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (nice invocation): Add examples.
+ Prompted by a suggestion from Dan Jacobson.
+ (factor invocation): Add an example.
+ Update timing numbers for a more modern CPU.
+
+2004-01-27 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (seq invocation): Remove `@dots{}' at end of synopsis.
+ Separate `Synopses' section into three examples.
+ Clarify first paragraph. @w{}-protect an expression.1
+ Use @option{--option}, rather than @code{--option}.
+
+2004-01-19 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (Exit status): Document that ordinary failure
+ might not exit with status 1 on unusual platforms.
+ Mention chroot, env, nice, and su as having unusual exit
+ status patterns. Don't bother to mention true and false
+ since their exit status patterns are actually normal.
+ (sort invocation, su invocation): Mention its unusual exit
+ status pattern.
+ (chroot invocation): Simplify description of exit status 1.
+ Remove duplicate description of status 127.
+ (env invocation): Use consistent tenses; simplifiy description
+ of status 1.
+ (nice invocation): Likewise.
+
+2003-12-15 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (touch invocation): touch -r and -d can now
+ both be specified, with -r specifying the origin for -d.
+
+2004-01-15 Alfred M. Szmidt <ams@kemisten.nu>
+
+ Factor out some common options.
+ * coreutils.texi (Common options): Define macros here.
+ (What information is listed, cp invocation): Use the macro(s).
+ (install invocation, mv invocation, ln invocation): Likewise.
+ (df invocation, du invocation): Likewise.
+
+2004-01-09 Jim Meyering <jim@meyering.net>
+
+ Document the exit status of each and every program.
+ * coreutils.texi (yes invocation): Document that a write error
+ makes `yes' exit unsuccessfully.
+ (chroot invocation): Enumerate the meaning of exit status values.
+ (nice invocation): Likewise.
+ (Exit status) [@macro exitstatus]: New macro.
+ Use @exitstatus to describe the exit status of most programs.
+
+2004-01-02 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (du invocation): Mention that -H will eventually
+ mean not --si, but --dereference-args (-D).
+
+2003-12-20 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (du invocation): Describe new option: -0, --null.
+
+2003-12-03 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (What information is listed, chroot invocation):
+ Adjust example 'ls' output to match new behavior with narrower
+ output columns.
+ (The cut command): Remove example that cut the output of
+ 'ls -l'. The output was incorrect even with the old 'ls', and
+ the whole idea of using 'cut' on 'ls -l' output is bogus anyway.
+
+2003-11-24 Paul Eggert <eggert@twinsun.com>
+
+ Parse floating-point operands and options in the C locale.
+ POSIX requires this for printf, and we might as well be
+ consistent elsewhere (tail, sleep, seq).
+
+ * coreutils.texi (tail invocation, printf invocation,
+ sleep invocation, seq invocation): Document this.
+
+2003-11-24 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Traversing symlinks, Treating / specially):
+ New sections.
+ (rm invocation, chown invocation, chmod invocation, chgrp invocation):
+ Describe new options, --preserve-root and --no-preserve-root.
+
+2003-11-11 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (chown invocation) [chownchgrpoptions]: New macro
+ describing -H, -L, -P options. Use it here.
+ (chgrp invocation): And here.
+
+2003-11-09 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (dd invocation): Fix typo in example.
+
+2003-10-15 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (ln invocation): Note that --directory, -d, -F
+ probably won't work even for superuser. Suggestion from Dan Jacobson.
+
+2003-09-29 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (csplit invocation):
+ The regexp offset need not have a sign; POSIX requires support
+ for signless offets.
+
+2003-10-03 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (du invocation): Describe -P, --no-dereference.
+
+2003-09-28 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Translating): Correct typo in menu description.
+ From A Costa.
+
+2003-09-02 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (sort invocation): -d now overrides -i.
+ "whitespace" -> "blanks"; "whitespace" isn't correct.
+ -t '\0' now specifies a NUL tab.
+
+2003-08-17 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (who invocation): Add an entry for -l, --login.
+ Remove `-l' from the entry for --lookup.
+ (who invocation): Begin adding missing option documentation.
+
+2003-08-07 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (split invocation):
+ Add -d or --numeric-suffixes option to 'split'.
+
+2003-07-31 Paul Eggert <eggert@twinsun.com>
+
+ * getdate.texi (General date syntax): Add --rfc-2822 option to GNU date.
+ * coreutils.texi (Options for date): Fix a typo in format:
+ it's now %d not %_d. Add URLs.
+
+2003-07-31 Paul Eggert <eggert@twinsun.com>
+
+ * getdate.texi (Relative items in date strings): Warn about
+ fuzz in relative units.
+
+2003-07-29 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (tail invocation): Restore two end-of-sentence words
+ that were mistakenly removed on 2002-09-13. Reported by Paul Worrall.
+
+2003-07-28 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (dd invocation): Explain that a SIGUSR1 signal
+ makes dd give a progress report to stderr.
+
+2003-07-24 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi: Document changes of 2003-07-24.
+
+2003-07-24 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (su invocation): Use `@subsection', not invalid
+ `@heading'.
+
+2003-07-17 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (expr invocation): Exit status is 2 if the
+ expression is syntactically invalid, 3 if there is some other error.
+ This change is for conformance to POSIX.
+
+2003-07-14 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (uname invocation): Explain the POSIX
+ terminology behind uname -m and uname -s.
+
+2003-07-13 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (chown invocation): Warn that chown
+ now clears set-user-ID and set-group-ID bits on some systems.
+ From Bob Proulx.
+ (nohup invocation): Tell what happens when stdout is not a terminal.
+ Based on a suggestion from Steven Mocking.
+
+2003-07-10 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Standards conformance): Mention that uses like
+ `tail -1' and `head -1', like `sort +1', are non conforming.
+ (chown invocation): Say that using `.' as a separator may not work.
+
+2003-06-25 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Time directives) [%s]: Add a cross reference
+ to the related examples.
+ (Examples of date): Add an @anchor here, along with a few more examples.
+ Suggestion from Dan Jacobson.
+
+2003-06-12 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (wc invocation): Tweak wording: wc prints counts in
+ the order `newline, word, byte'. Suggestion from Keith M. Briggs.
+ Also change `lines' to `newlines'.
+
+2003-05-14 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (head invocation): Document --bytes=-N and --lines=-N.
+
+2003-05-13 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (uniq invocation, squeezing, The uniq command):
+ Use "repeated" rather than "duplicate" to describe adjacent
+ duplicates; this simplifies the description and makes it more
+ consistent with POSIX.
+ (uniq invocation): Make it clear that -d and -u suppress the
+ output of lines, rather than cause some lines to be output.
+ Mention what happens if a line lacks enough fields or characters.
+
+2003-05-13 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (true invocation): Mention that it is possible to
+ make true --help or true --version (in non-POSIX mode) exit nonzero.
+ Suggestion from Paul Eggert.
+
+2003-05-10 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Exit status): Remove `uniq' from the list.
+ It uses standard exit codes.
+ (More details about version sort): Note that strverscmp, and hence
+ `ls -v', does not use LC_COLLATE. Reported by From: Andrey Borzenkov.
+
+2003-04-21 Jim Meyering <jim@meyering.net>
+
+ Fix printf POSIX compatibility bug reported by Ben Harris in
+ <http://mail.gnu.org/archive/html/bug-coreutils/2003-04/msg00070.html>.
+ * coreutils.texi (printf invocation): It's \NNN in the format,
+ \0NNN in the %b operand.
+
+2003-04-10 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (check-texinfo): Check for uses of non-zero.
+ I prefer to spell it `nonzero'.
+
+ * coreutils.texi (readlink invocation): Tweak description a little.
+
+2003-04-04 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (constants.texi): Rename target (thus enabling it),
+ now that fileutils, textutils, and sh-utils have been merged.
+ (MAINTAINERCLEANFILES): Define.
+
+2003-04-02 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (false invocation): Note that false exits
+ unsuccessfully even with --help and --version.
+
+ * Makefile.am (check-texinfo): Don't fail if perl is missing.
+ Reported by Nelson Beebe.
+
+2003-03-27 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (printf invocation): Fix formatting bugs.
+ From Paul Eggert.
+ (sort invocation): Describe sort's --stable (-s) option.
+
+2003-03-13 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (shred invocation): Mention that --exact
+ is now the default for non-regular files.
+
+2003-03-02 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Exit status): New section.
+ Suggestion from Michael Stone.
+
+2003-02-21 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (du invocation): Document --apparent-size.
+ Adjust documentation of --bytes (-b).
+ (stat invocation): Describe %B.
+
+2003-02-07 Richard Dawe <rich@phekda.freeserve.co.uk>
+
+ * coreutils.texi: Use @command instead of @code for program names.
+
+ * perm.texi (Mode Structure): Mention filesystem-specific
+ permissions and that mounting a filesystem as read-only may
+ override actual file permissions. Use @command instead
+ of @code for program names.
+
+2003-02-06 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi: Adjust alignment and mention `file, text, shell'
+ on the `* Coreutils:...' dirently line. From Karl Berry.
+
+2003-02-05 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (check-texinfo): Allow bare `POSIX' to be used on
+ direntry lines.
+
+ * coreutils.texi: Use new form of @direntry.
+ Put unlink in its proper place. Adjust wording in some
+ dir entry descriptions, mainly so they fit in 80 columns.
+ Don't use mark-up like @acronym{POSIX} in direntries.
+ Mostly from Karl Berry.
+
+2003-01-25 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (cut invocation): Describe new functionality of
+ --output-delimiter=STR.
+
+2003-01-24 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (The cut command): Give an example of using cut -c
+ with an output delimiter. From Jan Nieuwenhuizen.
+
+ * coreutils.texi (The cut command): Extend the new example a little.
+ (Formatting file timestamps): Fix typo: s/%M:S/%M:%S/.
+
+ * coreutils.texi: Change each use of `Core-utils' to `Coreutils'.
+ From Karl Berry.
+
+2003-01-19 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Which files are listed): Document new option:
+ --dereference-command-line-symlink-to-dir.
+
+2003-01-15 Paul Eggert <eggert@twinsun.com>
+
+ Change ls -H back to the way it was yesterday, since this is
+ compatible with FreeBSD and the POSIX spec is confusing
+ and somewhat contradictory.
+
+ * coreutils.texi (Which files are listed, General output
+ formatting): Undo last change.
+
+2003-01-15 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (General output formatting): Reflect option name change:
+ s/--dereference-command-line/--dereference-command-line-symlink-to-dir/.
+ Say that this option changes how ls treats only symlinks to directories
+ specified on the command line.
+
+2002-08-27 Dmitry V. Levin <ldv@altlinux.org>
+
+ * coreutils.texi: Document readlink.
+
+2002-12-14 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (mknod invocation): Specify how major and minor mode
+ numbers are interpreted. Report forwarded by Kristin E Thomas.
+
+2002-11-13 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Examples of expr): Remove bogus `^'s.
+ Reported by Thomas Goerlich.
+
+2002-11-09 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (What information is listed) [--dired]:
+ Correct parts of --dired description. Reported by Andre Spiegel.
+ Include a lot more description, with examples.
+
+2002-11-06 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (printf invocation): Fix typo in index:
+ change \0x prefix to \x.
+ Change \xhhh to \xhh.
+
+2002-10-07 Paul Eggert <eggert@twinsun.com>
+
+ Add support for locale-specific size indications (e.g.,
+ thousands-separators) and for explicit size suffixes on output.
+
+ * coreutils.texi (Block size): Say that:
+ This affects display format as well as block size.
+ Fractional block counts are rounded up.
+ ls file size blocksize defaults to 1.
+ A block size spec preceded by ' generates thousands separators.
+ A suffix without a preceding integer generates suffixes.
+ (tail invocation): 32k -> 32 KiB.
+ (What information is listed): ls -h is now equivalent to
+ ls --block-size=human, and ls -H is now equivalent to
+ ls --block-size=si. Displayed file size is now always affected by
+ --block-size.
+
+2002-09-13 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (tail invocation): In --sleep-interval=NUMBER,
+ NUMBER may now be a floating point number.
+ (stat invocation): Remove references to now-removed %S and %C.
+ (Time directives) [%S]: Explain why the range is [0..60].
+
+2002-08-30 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi [START-INFO-DIR-ENTRY]: Don't use sc{} on LHS.
+ Fix typo: s/permission/permissions/. From Michail Litvak.
+
+2002-08-02 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (uniq invocation): uniq now obeys LC_COLLATE.
+
+2002-07-29 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (nohup invocation): Change behavior to conform to
+ POSIX 1003.1-2001:
+ - Do not adjust scheduling priority.
+ - Redirects stderr to stdout, if stderr is not a terminal.
+ - Exit status is now 126 if command was found but not invoked,
+ 127 if nohup failed or if command was not found.
+
+2002-07-24 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Time directives): Document %P, %R, %e, %F,
+ %g, %G, and %V
+
+2002-07-22 Martin Michlmayr <tbm@cyrius.com>
+
+ * coreutils.texi (Formatting the file names): Document
+ that -N/--literal are equivalent to --quoting-style=literal.
+ Reported by Oskar Liljeblad as Debian bug#103612.
+
+2002-07-10 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (du invocation): s/PAT/PATTERN/.
+ From Martin Michlmayr.
+
+2002-07-08 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (cp invocation): Remove unnecessary "$@" in example;
+ Texinfo would render the @" as an umlaut over the following character.
+ From Paul Eggert.
+ * Makefile.am (check-texinfo): Check for the above.
+
+2002-07-06 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (stat invocation): Remove description of --secure.
+
+2002-07-03 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (stat invocation): Rename --link/-l
+ to --dereference/-L. Rewrite description of --dereference.
+
+2002-06-26 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (Putting the tools together): Don't mention egrep,
+ since it's not part of POSIX 1003.1-2001.
+
+2002-06-21 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (stat invocation): New section. From Michael Meskes.
+
+2002-05-19 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (ls invocation): Document new option: --author.
+
+2002-06-03 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (rm invocation): Add the warning (also in the --help
+ output) that the contents of a removed file are often recoverable.
+
+2002-05-27 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (check-texinfo): Adapt to reflect that now we use
+ @acronym{POSIX}.
+
+2002-05-26 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi: Use @acronym in place of most uses of @sc.
+ * getdate.texi (Date input formats): Likewise.
+
+2002-04-28 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi: Change `@code{PROG}' to `@command{PROG}'.
+
+2002-04-28 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (kill invocation): Document the above.
+ Document POSIX signals better.
+
+2002-04-15 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi: Document kill.
+ Written by Marcus Brinkmann.
+
+2002-04-13 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi: Document link and unlink.
+
+2002-04-08 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi: Use new directives, @copying and @insertcopying,
+ thus now requiring texinfo-4.2 to create the .info file.
+
+2002-02-26 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (File characteristic tests): Document the
+ behavior of test -nt and -ot when one of the files does not exist,
+ using the same behavior that is documented in ksh93.
+
+2002-03-05 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (cut invocation): Say that selected input is
+ written in the same order that it is read, and is written
+ exactly once.
+
+2002-03-03 Paul Eggert <eggert@twinsun.com>
+
+ Make cp -r equivalent to cp -R. Add a new cp option --copy-contents
+ for people who want to emulate the traditional (and rarely desirable)
+ cp -r behavior.
+
+ * coreutils.texi (cp invocation): Document this.
+ Fix some related minor bugs: --no-dereference is no longer
+ equivalent to -d, and --archive (-a) can override the other
+ symlink options. Warn that cp -R is not portable on symbolic
+ links unless you also specify -P.
+
+2002-03-02 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (cp invocation): Document that cp -r
+ preserves symlinks. Emphasize non-portability of cp -r.
+
+2002-02-27 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (Time directives): Add %N for nanoseconds.
+ This documents the recent change to 'ls'.
+
+2002-02-28 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (pr invocation): Reword to avoid using `:'
+ in an @opindex entry -- info doesn't permit it.
+
+2002-02-27 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (Formatting file timestamps): Document new
+ time-formatting method: --time-style=+FORMAT.
+
+2002-02-18 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (seq invocation): In the example, use "tail
+ -n 3", not "tail -3", to conform to POSIX 1003.1-2001.
+
+2002-02-17 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (tsort background): New section.
+ From Ian Lance Taylor.
+ (tsort invocation): Add a more realistic example.
+
+2002-02-15 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi: Document _POSIX2_VERSION.
+ (Standards Conformance): New section.
+
+2002-01-24 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (START-INFO-DIR-ENTRY): Remove a few entries
+ and clean up a few others based on suggestions from Bob Proulx.
+
+2002-02-14 Paul Eggert <eggert@twinsun.com>
+
+ Add support for POSIX 1003.1-2001, which requires removal for
+ support of obsolete "+" option syntax in sort, tail, and uniq.
+ * coreutils.texi: Document this. (Also, document a similar
+ change to "touch", for fileutils).
+
+2002-01-12 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (shred invocation): List some journaled filesystems.
+
+2001-11-10 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (Date directives): Document %u.
+
+2001-11-07 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (paste invocation): Give examples.
+ Thanks to Dan Jacobson for suggesting the examples.
+
+2001-11-05 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (sort invocation): Recommend setting LC_ALL=C,
+ not LC_COLLATE=C. Explain how the latter can cause problems.
+ Based on a message from Paul Eggert.
+ (ls invocation): Recommend setting LC_ALL=C, not LC_COLLATE=C.
+
+2001-10-21 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (cp invocation): Describe --reply=...
+
+2001-10-17 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (cp invocation): `cp --no-dereference' is
+ no longer equivalent to `cp -d'.
+ `cp -d' is equivalent to `--no-dereference --preserve=links'.
+ cp's -P option means --no-dereference, not --parents.
+ Describe new optional argument to --preserve.
+ Describe new option: --no-preserve=ATTRIBUTE_LIST.
+
+2001-09-23 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (check-texinfo): Redirect stderr of `grep -w' to
+ /dev/null, so people with old versions of grep don't see the failure.
+
+2001-09-16 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (mv invocation): Describe new option:
+ --reply={yes,no,query}. Fix a few typos.
+
+2001-09-15 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (uniq invocation): The input need not
+ be sorted. Try to clarify -d versus -D versus -u.
+
+2001-09-12 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (tail invocation): Document new option: -F.
+ From Herbert Xu.
+
+2001-09-04 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi (join invocation): Describe the GNU
+ extension to join, which does not require sorted input when
+ the input contains no unpairable lines.
+
+2001-09-03 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi:
+ New 'uname' options -i or --hardware-platform,
+ and -o or --operating-system.
+ 'uname -a' now outputs -i and -o information at the end.
+ New uname option --kernel-version is an alias for -v.
+ Uname option --release has been renamed to --kernel-release,
+ and --sysname has been renamed to --kernel-name;
+ the old options will work for a while, but are no longer documented.
+
+2001-08-24 Herbert Xu <herbert@gondor.apana.org.au>
+
+ * coreutils.texi (cut invocation): Document how cut treats lines
+ with no separators.
+
+2001-06-19 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi: expr now uses LC_COLLATE for string comparison,
+ as per POSIX.
+
+2001-08-25 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi: Use @option, rather than @samp everywhere.
+
+2001-06-21 Paul Eggert <eggert@twinsun.com>
+
+ * coreutils.texi: 'expr' now requires '+' rather than 'quote'
+ to quote tokens.
+
+2001-07-14 Jim Meyering <jim@meyering.net>
+
+ * coreutils.texi (cp invocation): Reflect 2001-07-08 change to
+ cp (via copy.c).
+
+2001-06-16 Jim Meyering <jim@meyering.net>
+
+ * Makefile.am (info_TEXINFOS): Reflect renaming: s/omni-/core/.
+ * coreutils.texi: Likewise.
+
+ * coreutils.texi: New, renamed from omni-utils.texi.
+ * omni-utils.texi: Removed, renamed to coreutils.texi.
+
+ * omni-utils.texi (ls invocation): Mention the effect of locale.
+ Reported by Keith Thompson.
+
+2001-05-24 Jim Meyering <jim@meyering.net>
+
+ * texinfo.tex: Update from master source.
+
+ * omni-utils.texi (ls invocation): Document more clearly what ls
+ does when given no arguments.
+
+2001-05-21 Jim Meyering <jim@meyering.net>
+
+ * textutils.texi: Remove file.
+
+ * Makefile.am ($(DVIS), $(INFO_DEPS)): Depend on $(EXTRA_DIST).
+ (DISABLED_constants.texi): New rule -- disabled for now.
+
+ This directory is now shared by fileutils, textutils, and sh-utils.
diff --git a/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/doc/coreutils.info b/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/doc/coreutils.info
new file mode 100644
index 0000000..263ca12
--- /dev/null
+++ b/coreutils-5.3.0-bin/contrib/coreutils/5.3.0/coreutils-5.3.0-src/doc/coreutils.info
@@ -0,0 +1,14780 @@
+This is coreutils.info, produced by makeinfo version 4.8 from
+coreutils.texi.
+
+INFO-DIR-SECTION Basics
+START-INFO-DIR-ENTRY
+* Coreutils: (coreutils). Core GNU (file, text, shell) utilities.
+* Common options: (coreutils)Common options. Common options.
+* File permissions: (coreutils)File permissions. Access modes.
+* Date input formats: (coreutils)Date input formats.
+END-INFO-DIR-ENTRY
+
+INFO-DIR-SECTION Individual utilities
+START-INFO-DIR-ENTRY
+* basename: (coreutils)basename invocation. Strip directory and suffix.
+* cat: (coreutils)cat invocation. Concatenate and write files.
+* chgrp: (coreutils)chgrp invocation. Change file groups.
+* chmod: (coreutils)chmod invocation. Change file permissions.
+* chown: (coreutils)chown invocation. Change file owners/groups.
+* chroot: (coreutils)chroot invocation. Specify the root directory.
+* cksum: (coreutils)cksum invocation. Print POSIX CRC checksum.
+* comm: (coreutils)comm invocation. Compare sorted files by line.
+* cp: (coreutils)cp invocation. Copy files.
+* csplit: (coreutils)csplit invocation. Split by context.
+* cut: (coreutils)cut invocation. Print selected parts of lines.
+* date: (coreutils)date invocation. Print/set system date and time.
+* dd: (coreutils)dd invocation. Copy and convert a file.
+* df: (coreutils)df invocation. Report file system disk usage.
+* dir: (coreutils)dir invocation. List directories briefly.
+* dircolors: (coreutils)dircolors invocation. Color setup for ls.
+* dirname: (coreutils)dirname invocation. Strip non-directory suffix.
+* du: (coreutils)du invocation. Report on disk usage.
+* echo: (coreutils)echo invocation. Print a line of text.
+* env: (coreutils)env invocation. Modify the environment.
+* expand: (coreutils)expand invocation. Convert tabs to spaces.
+* expr: (coreutils)expr invocation. Evaluate expressions.
+* factor: (coreutils)factor invocation. Print prime factors
+* false: (coreutils)false invocation. Do nothing, unsuccessfully.
+* fmt: (coreutils)fmt invocation. Reformat paragraph text.
+* fold: (coreutils)fold invocation. Wrap long input lines.
+* groups: (coreutils)groups invocation. Print group names a user is in.
+* head: (coreutils)head invocation. Output the first part of files.
+* hostid: (coreutils)hostid invocation. Print numeric host identifier.
+* hostname: (coreutils)hostname invocation. Print or set system name.
+* id: (coreutils)id invocation. Print real/effective uid/gid.
+* install: (coreutils)install invocation. Copy and change attributes.
+* join: (coreutils)join invocation. Join lines on a common field.
+* kill: (coreutils)kill invocation. Send a signal to processes.
+* link: (coreutils)link invocation. Make hard links between files.
+* ln: (coreutils)ln invocation. Make links between files.
+* logname: (coreutils)logname invocation. Print current login name.
+* ls: (coreutils)ls invocation. List directory contents.
+* md5sum: (coreutils)md5sum invocation. Print or check message-digests.
+* mkdir: (coreutils)mkdir invocation. Create directories.
+* mkfifo: (coreutils)mkfifo invocation. Create FIFOs (named pipes).
+* mknod: (coreutils)mknod invocation. Create special files.
+* mv: (coreutils)mv invocation. Rename files.
+* nice: (coreutils)nice invocation. Modify scheduling priority.
+* nl: (coreutils)nl invocation. Number lines and write files.
+* nohup: (coreutils)nohup invocation. Immunize to hangups.
+* od: (coreutils)od invocation. Dump files in octal, etc.
+* paste: (coreutils)paste invocation. Merge lines of files.
+* pathchk: (coreutils)pathchk invocation. Check file name portability.
+* pr: (coreutils)pr invocation. Paginate or columnate files.
+* printenv: (coreutils)printenv invocation. Print environment variables.
+* printf: (coreutils)printf invocation. Format and print data.
+* ptx: (coreutils)ptx invocation. Produce permuted indexes.
+* pwd: (coreutils)pwd invocation. Print working directory.
+* readlink: (coreutils)readlink invocation. Print referent of a symlink.
+* rm: (coreutils)rm invocation. Remove files.
+* rmdir: (coreutils)rmdir invocation. Remove empty directories.
+* seq: (coreutils)seq invocation. Print numeric sequences
+* shred: (coreutils)shred invocation. Remove files more securely.
+* sleep: (coreutils)sleep invocation. Delay for a specified time.
+* sort: (coreutils)sort invocation. Sort text files.
+* split: (coreutils)split invocation. Split into fixed-size pieces.
+* stat: (coreutils)stat invocation. Report file(system) status.
+* stty: (coreutils)stty invocation. Print/change terminal settings.
+* su: (coreutils)su invocation. Modify user and group id.
+* sum: (coreutils)sum invocation. Print traditional checksum.
+* sync: (coreutils)sync invocation. Synchronize memory and disk.
+* tac: (coreutils)tac invocation. Reverse files.
+* tail: (coreutils)tail invocation. Output the last part of files.
+* tee: (coreutils)tee invocation. Redirect to multiple files.
+* test: (coreutils)test invocation. File/string tests.
+* touch: (coreutils)touch invocation. Change file timestamps.
+* tr: (coreutils)tr invocation. Translate characters.
+* true: (coreutils)true invocation. Do nothing, successfully.
+* tsort: (coreutils)tsort invocation. Topological sort.
+* tty: (coreutils)tty invocation. Print terminal name.
+* uname: (coreutils)uname invocation. Print system information.
+* unexpand: (coreutils)unexpand invocation. Convert spaces to tabs.
+* uniq: (coreutils)uniq invocation. Uniquify files.
+* unlink: (coreutils)unlink invocation. Removal via unlink(2).
+* users: (coreutils)users invocation. Print current user names.
+* vdir: (coreutils)vdir invocation. List directories verbosely.
+* wc: (coreutils)wc invocation. Line, word, and byte counts.
+* who: (coreutils)who invocation. Print who is logged in.
+* whoami: (coreutils)whoami invocation. Print effective user id.
+* yes: (coreutils)yes invocation. Print a string indefinitely.
+END-INFO-DIR-ENTRY
+
+ This manual documents version 5.3.0 of the GNU core utilities,
+including the standard programs for text and file manipulation.
+
+ Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2004 Free
+Software Foundation, Inc.
+
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.1 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, with no Front-Cover Texts,
+ and with no Back-Cover Texts. A copy of the license is included
+ in the section entitled "GNU Free Documentation License".
+
+
+File: coreutils.info, Node: Top, Next: Introduction, Up: (dir)
+
+GNU Coreutils
+*************
+
+This manual documents version 5.3.0 of the GNU core utilities,
+including the standard programs for text and file manipulation.
+
+ Copyright (C) 1994, 1995, 1996, 2000, 2001, 2002, 2003, 2004 Free
+Software Foundation, Inc.
+
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free Documentation License,
+ Version 1.1 or any later version published by the Free Software
+ Foundation; with no Invariant Sections, with no Front-Cover Texts,
+ and with no Back-Cover Texts. A copy of the license is included
+ in the section entitled "GNU Free Documentation License".
+
+* Menu:
+
+* Introduction:: Caveats, overview, and authors.
+* Common options:: Common options.
+* Output of entire files:: cat tac nl od
+* Formatting file contents:: fmt pr fold
+* Output of parts of files:: head tail split csplit
+* Summarizing files:: wc sum cksum md5sum
+* Operating on sorted files:: sort uniq comm ptx tsort
+* Operating on fields within a line:: cut paste join
+* Operating on characters:: tr expand unexpand
+* Directory listing:: ls dir vdir d v dircolors
+* Basic operations:: cp dd install mv rm shred
+* Special file types:: ln mkdir rmdir mkfifo mknod
+* Changing file attributes:: chgrp chmod chown touch
+* Disk usage:: df du stat sync
+* Printing text:: echo printf yes
+* Conditions:: false true test expr
+* Redirection:: tee
+* File name manipulation:: dirname basename pathchk
+* Working context:: pwd stty printenv tty
+* User information:: id logname whoami groups users who
+* System context:: date uname hostname
+* Modified command invocation:: chroot env nice nohup su
+* Process control:: kill
+* Delaying:: sleep
+* Numeric operations:: factor seq
+* File permissions:: Access modes.
+* Date input formats:: Specifying date strings.
+* Opening the software toolbox:: The software tools philosophy.
+* GNU Free Documentation License:: The license for this documentation.
+* Index:: General index.
+
+ --- The Detailed Node Listing ---
+
+Common Options
+
+* Exit status:: Indicating program success or failure.
+* Backup options:: Backup options
+* Block size:: Block size
+* Target directory:: Target directory
+* Trailing slashes:: Trailing slashes
+* Traversing symlinks:: Traversing symlinks to directories
+* Treating / specially:: Treating / specially
+* Standards conformance:: Standards conformance
+
+Output of entire files
+
+* cat invocation:: Concatenate and write files.
+* tac invocation:: Concatenate and write files in reverse.
+* nl invocation:: Number lines and write files.
+* od invocation:: Write files in octal or other formats.
+
+Formatting file contents
+
+* fmt invocation:: Reformat paragraph text.
+* pr invocation:: Paginate or columnate files for printing.
+* fold invocation:: Wrap input lines to fit in specified width.
+
+Output of parts of files
+
+* head invocation:: Output the first part of files.
+* tail invocation:: Output the last part of files.
+* split invocation:: Split a file into fixed-size pieces.
+* csplit invocation:: Split a file into context-determined pieces.
+
+Summarizing files
+
+* wc invocation:: Print newline, word, and byte counts.
+* sum invocation:: Print checksum and block counts.
+* cksum invocation:: Print CRC checksum and byte counts.
+* md5sum invocation:: Print or check message-digests.
+
+Operating on sorted files
+
+* sort invocation:: Sort text files.
+* uniq invocation:: Uniquify files.
+* comm invocation:: Compare two sorted files line by line.
+* ptx invocation:: Produce a permuted index of file contents.
+* tsort invocation:: Topological sort.
+
+`ptx': Produce permuted indexes
+
+* General options in ptx:: Options which affect general program behavior.
+* Charset selection in ptx:: Underlying character set considerations.
+* Input processing in ptx:: Input fields, contexts, and keyword selection.
+* Output formatting in ptx:: Types of output format, and sizing the fields.
+* Compatibility in ptx:: The GNU extensions to `ptx'
+
+Operating on fields within a line
+
+* cut invocation:: Print selected parts of lines.
+* paste invocation:: Merge lines of files.
+* join invocation:: Join lines on a common field.
+
+Operating on characters
+
+* tr invocation:: Translate, squeeze, and/or delete characters.
+* expand invocation:: Convert tabs to spaces.
+* unexpand invocation:: Convert spaces to tabs.
+
+`tr': Translate, squeeze, and/or delete characters
+
+* Character sets:: Specifying sets of characters.
+* Translating:: Changing one set of characters to another.
+* Squeezing:: Squeezing repeats and deleting.
+
+Directory listing
+
+* ls invocation:: List directory contents
+* dir invocation:: Briefly list directory contents
+* vdir invocation:: Verbosely list directory contents
+* dircolors invocation:: Color setup for `ls'
+
+`ls': List directory contents
+
+* Which files are listed:: Which files are listed
+* What information is listed:: What information is listed
+* Sorting the output:: Sorting the output
+* More details about version sort:: More details about version sort
+* General output formatting:: General output formatting
+* Formatting the file names:: Formatting the file names
+
+Basic operations
+
+* cp invocation:: Copy files and directories
+* dd invocation:: Convert and copy a file
+* install invocation:: Copy files and set attributes
+* mv invocation:: Move (rename) files
+* rm invocation:: Remove files or directories
+* shred invocation:: Remove files more securely
+
+Special file types
+
+* link invocation:: Make a hard link via the link syscall
+* ln invocation:: Make links between files
+* mkdir invocation:: Make directories
+* mkfifo invocation:: Make FIFOs (named pipes)
+* mknod invocation:: Make block or character special files
+* readlink invocation:: Print the referent of a symbolic link
+* rmdir invocation:: Remove empty directories
+* unlink invocation:: Remove files via unlink syscall
+
+Changing file attributes
+
+* chown invocation:: Change file owner and group
+* chgrp invocation:: Change group ownership
+* chmod invocation:: Change access permissions
+* touch invocation:: Change file timestamps
+
+Disk usage
+
+* df invocation:: Report file system disk space usage
+* du invocation:: Estimate file space usage
+* stat invocation:: Report file or file system status
+* sync invocation:: Synchronize data on disk with memory
+
+Printing text
+
+* echo invocation:: Print a line of text
+* printf invocation:: Format and print data
+* yes invocation:: Print a string until interrupted
+
+Conditions
+
+* false invocation:: Do nothing, unsuccessfully
+* true invocation:: Do nothing, successfully
+* test invocation:: Check file types and compare values
+* expr invocation:: Evaluate expressions
+
+`test': Check file types and compare values
+
+* File type tests:: File type tests
+* Access permission tests:: Access permission tests
+* File characteristic tests:: File characteristic tests
+* String tests:: String tests
+* Numeric tests:: Numeric tests
+
+`expr': Evaluate expression
+
+* String expressions:: + : match substr index length
+* Numeric expressions:: + - * / %
+* Relations for expr:: | & < <= = == != >= >
+* Examples of expr:: Examples of using `expr'
+
+Redirection
+
+* tee invocation:: Redirect output to multiple files
+
+File name manipulation
+
+* basename invocation:: Strip directory and suffix from a file name
+* dirname invocation:: Strip non-directory suffix from a file name
+* pathchk invocation:: Check file name portability
+
+Working context
+
+* pwd invocation:: Print working directory
+* stty invocation:: Print or change terminal characteristics
+* printenv invocation:: Print all or some environment variables
+* tty invocation:: Print file name of terminal on standard input
+
+`stty': Print or change terminal characteristics
+
+* Control:: Control settings
+* Input:: Input settings
+* Output:: Output settings
+* Local:: Local settings
+* Combination:: Combination settings
+* Characters:: Special characters
+* Special:: Special settings
+
+User information
+
+* id invocation:: Print real and effective uid and gid
+* logname invocation:: Print current login name
+* whoami invocation:: Print effective user id
+* groups invocation:: Print group names a user is in
+* users invocation:: Print login names of users currently logged in
+* who invocation:: Print who is currently logged in
+
+System context
+
+* date invocation:: Print or set system date and time
+* uname invocation:: Print system information
+* hostname invocation:: Print or set system name
+* hostid invocation:: Print numeric host identifier.
+
+`date': Print or set system date and time
+
+* Time directives:: Time directives
+* Date directives:: Date directives
+* Literal directives:: Literal directives
+* Padding:: Padding
+* Setting the time:: Setting the time
+* Options for date:: Options for `date'
+* Examples of date:: Examples of `date'
+
+Modified command invocation
+
+* chroot invocation:: Run a command with a different root directory
+* env invocation:: Run a command in a modified environment
+* nice invocation:: Run a command with modified scheduling priority
+* nohup invocation:: Run a command immune to hangups
+* su invocation:: Run a command with substitute user and group id
+
+Process control
+
+* kill invocation:: Sending a signal to processes.
+
+Delaying
+
+* sleep invocation:: Delay for a specified time
+
+Numeric operations
+
+* factor invocation:: Print prime factors
+* seq invocation:: Print numeric sequences
+
+File permissions
+
+* Mode Structure:: Structure of File Permissions
+* Symbolic Modes:: Mnemonic permissions representation
+* Numeric Modes:: Permissions as octal numbers
+
+Date input formats
+
+* General date syntax:: Common rules.
+* Calendar date items:: 19 Dec 1994.
+* Time of day items:: 9:20pm.
+* Time zone items:: EST, PDT, GMT.
+* Day of week items:: Monday and others.
+* Relative items in date strings:: next tuesday, 2 years ago.
+* Pure numbers in date strings:: 19931219, 1440.
+* Seconds since the Epoch:: @1078100502.
+* Specifying time zone rules:: TZ="America/New_York", TZ="UTC0".
+* Authors of get_date:: Bellovin, Eggert, Salz, Berets, et al.
+
+Opening the software toolbox
+
+* Toolbox introduction:: Toolbox introduction
+* I/O redirection:: I/O redirection
+* The who command:: The `who' command
+* The cut command:: The `cut' command
+* The sort command:: The `sort' command
+* The uniq command:: The `uniq' command
+* Putting the tools together:: Putting the tools together
+
+GNU Free Documentation License
+
+* How to use this License for your documents::
+
+
+File: coreutils.info, Node: Introduction, Next: Common options, Prev: Top, Up: Top
+
+1 Introduction
+**************
+
+This manual is a work in progress: many sections make no attempt to
+explain basic concepts in a way suitable for novices. Thus, if you are
+interested, please get involved in improving this manual. The entire
+GNU community will benefit.
+
+ The GNU utilities documented here are mostly compatible with the
+POSIX standard. Please report bugs to <bug-coreutils@gnu.org>.
+Remember to include the version number, machine architecture, input
+files, and any other information needed to reproduce the bug: your
+input, what you expected, what you got, and why it is wrong. Diffs are
+welcome, but please include a description of the problem as well, since
+this is sometimes difficult to infer. *Note Bugs: (gcc)Bugs.
+
+ This manual was originally derived from the Unix man pages in the
+distributions, which were written by David MacKenzie and updated by Jim
+Meyering. What you are reading now is the authoritative documentation
+for these utilities; the man pages are no longer being maintained. The
+original `fmt' man page was written by Ross Paterson. Franc,ois Pinard
+did the initial conversion to Texinfo format. Karl Berry did the
+indexing, some reorganization, and editing of the results. Brian
+Youmans of the Free Software Foundation office staff combined the
+manuals for textutils, fileutils, and sh-utils to produce the present
+omnibus manual. Richard Stallman contributed his usual invaluable
+insights to the overall process.
+
+
+File: coreutils.info, Node: Common options, Next: Output of entire files, Prev: Introduction, Up: Top
+
+2 Common options
+****************
+
+Certain options are available in all of these programs. Rather than
+writing identical descriptions for each of the programs, they are
+described here. (In fact, every GNU program accepts (or should accept)
+these options.)
+
+ Normally options and operands can appear in any order, and programs
+act as if all the options appear before any operands. For example,
+`sort -r passwd -t :' acts like `sort -r -t : passwd', since `:' is an
+option-argument of `-t'. However, if the `POSIXLY_CORRECT' environment
+variable is set, options must appear before operands, unless otherwise
+specified for a particular command.
+
+ A few programs can usefully have trailing operands with leading `-'.
+With such a program, options must precede operands even if
+`POSIXLY_CORRECT' is not set, and this fact is noted in the program
+description. For example, the `env' command's options must appear
+before its operands, since in some cases the operands specify a command
+that itself contains options.
+
+ Some of these programs recognize the `--help' and `--version'
+options only when one of them is the sole command line argument.
+
+`--help'
+ Print a usage message listing all available options, then exit
+ successfully.
+
+`--version'
+ Print the version number, then exit successfully.
+
+`--'
+ Delimit the option list. Later arguments, if any, are treated as
+ operands even if they begin with `-'. For example, `sort -- -r'
+ reads from the file named `-r'.
+
+
+ A single `-' operand is not really an option, though it looks like
+one. It stands for standard input, or for standard output if that is
+clear from the context. For example, `sort -' reads from standard
+input, and is equivalent to plain `sort', and `tee -' writes an extra
+copy of its input to standard output. Unless otherwise specified, `-'
+can appear as any operand that requires a file name.
+
+* Menu:
+
+* Exit status:: Indicating program success or failure.
+* Backup options:: -b -S -V, in some programs.
+* Block size:: BLOCK_SIZE and --block-size, in some programs.
+* Target directory:: Specifying a target directory, in some programs.
+* Trailing slashes:: --strip-trailing-slashes, in some programs.
+* Traversing symlinks:: -H, -L, or -P, in some programs.
+* Treating / specially:: --preserve-root and --no-preserve-root.
+* Special built-in utilities:: `break', `:', `eval', ...
+* Standards conformance:: Conformance to the POSIX standard.
+
+
+File: coreutils.info, Node: Exit status, Next: Backup options, Up: Common options
+
+2.1 Exit status
+===============
+
+Nearly every command invocation yields an integral "exit status" that
+can be used to change how other commands work. For the vast majority
+of commands, an exit status of zero indicates success. Failure is
+indicated by a nonzero value--typically `1', though it may differ on
+unusual platforms as POSIX requires only that it be nonzero.
+
+ However, some of the programs documented here do produce other exit
+status values and a few associate different meanings with the values
+`0' and `1'. Here are some of the exceptions: `chroot', `env', `expr',
+`nice', `nohup', `printenv', `sort', `su', `test', `tty'.
+
+
+File: coreutils.info, Node: Backup options, Next: Block size, Prev: Exit status, Up: Common options
+
+2.2 Backup options
+==================
+
+Some GNU programs (at least `cp', `install', `ln', and `mv') optionally
+make backups of files before writing new versions. These options
+control the details of these backups. The options are also briefly
+mentioned in the descriptions of the particular programs.
+
+`-b'
+`--backup[=METHOD]'
+ Make a backup of each file that would otherwise be overwritten or
+ removed. Without this option, the original versions are destroyed.
+ Use METHOD to determine the type of backups to make. When this
+ option is used but METHOD is not specified, then the value of the
+ `VERSION_CONTROL' environment variable is used. And if
+ `VERSION_CONTROL' is not set, the default backup type is
+ `existing'.
+
+ Note that the short form of this option, `-b' does not accept any
+ argument. Using `-b' is equivalent to using `--backup=existing'.
+
+ This option corresponds to the Emacs variable `version-control';
+ the values for METHOD are the same as those used in Emacs. This
+ option also accepts more descriptive names. The valid METHODs are
+ (unique abbreviations are accepted):
+
+ `none'
+ `off'
+ Never make backups.
+
+ `numbered'
+ `t'
+ Always make numbered backups.
+
+ `existing'
+ `nil'
+ Make numbered backups of files that already have them, simple
+ backups of the others.
+
+ `simple'
+ `never'
+ Always make simple backups. Please note `never' is not to be
+ confused with `none'.
+
+
+`-S SUFFIX'
+`--suffix=SUFFIX'
+ Append SUFFIX to each backup file made with `-b'. If this option
+ is not specified, the value of the `SIMPLE_BACKUP_SUFFIX'
+ environment variable is used. And if `SIMPLE_BACKUP_SUFFIX' is not
+ set, the default is `~', just as in Emacs.
+
+`--version-control=METHOD'
+ This option is obsolete and will be removed in a future release.
+ It has been replaced with `--backup'.
+
+
+
+File: coreutils.info, Node: Block size, Next: Target directory, Prev: Backup options, Up: Common options
+
+2.3 Block size
+==============
+
+Some GNU programs (at least `df', `du', and `ls') display sizes in
+"blocks". You can adjust the block size and method of display to make
+sizes easier to read. The block size used for display is independent
+of any file system block size. Fractional block counts are rounded up
+to the nearest integer.
+
+ The default block size is chosen by examining the following
+environment variables in turn; the first one that is set determines the
+block size.
+
+`DF_BLOCK_SIZE'
+ This specifies the default block size for the `df' command.
+ Similarly, `DU_BLOCK_SIZE' specifies the default for `du' and
+ `LS_BLOCK_SIZE' for `ls'.
+
+`BLOCK_SIZE'
+ This specifies the default block size for all three commands, if
+ the above command-specific environment variables are not set.
+
+`BLOCKSIZE'
+ This specifies the default block size for all values that are
+ normally printed as blocks, if neither `BLOCK_SIZE' nor the above
+ command-specific environment variables are set. Unlike the other
+ environment variables, `BLOCKSIZE' does not affect values that are
+ normally printed as byte counts, e.g., the file sizes contained in
+ `ls -l' output.
+
+`POSIXLY_CORRECT'
+ If neither `COMMAND_BLOCK_SIZE', nor `BLOCK_SIZE', nor `BLOCKSIZE'
+ is set, but this variable is set, the block size defaults to 512.
+
+
+ If none of the above environment variables are set, the block size
+currently defaults to 1024 bytes in most contexts, but this number may
+change in the future. For `ls' file sizes, the block size defaults to
+1 byte.
+
+ A block size specification can be a positive integer specifying the
+number of bytes per block, or it can be `human-readable' or `si' to
+select a human-readable format. Integers may be followed by suffixes
+that are upward compatible with the SI prefixes
+(http://www.bipm.fr/enus/3_SI/si-prefixes.html) for decimal multiples
+and with the IEC 60027-2 prefixes for binary multiples
+(http://physics.nist.gov/cuu/Units/binary.html).
+
+ With human-readable formats, output sizes are followed by a size
+letter such as `M' for megabytes. `BLOCK_SIZE=human-readable' uses
+powers of 1024; `M' stands for 1,048,576 bytes. `BLOCK_SIZE=si' is
+similar, but uses powers of 1000 and appends `B'; `MB' stands for
+1,000,000 bytes.
+
+ A block size specification preceded by `'' causes output sizes to be
+displayed with thousands separators. The `LC_NUMERIC' locale specifies
+the thousands separator and grouping. For example, in an American
+English locale, `--block-size="'1kB"' would cause a size of 1234000
+bytes to be displayed as `1,234'. In the default C locale, there is no
+thousands separator so a leading `'' has no effect.
+
+ An integer block size can be followed by a suffix to specify a
+multiple of that size. A bare size letter, or one followed by `iB',
+specifies a multiple using powers of 1024. A size letter followed by
+`B' specifies powers of 1000 instead. For example, `1M' and `1MiB' are
+equivalent to `1048576', whereas `1MB' is equivalent to `1000000'.
+
+ A plain suffix without a preceding integer acts as if `1' were
+prepended, except that it causes a size indication to be appended to
+the output. For example, `--block-size="kB"' displays 3000 as `3kB'.
+
+ The following suffixes are defined. Large sizes like `1Y' may be
+rejected by your computer due to limitations of its arithmetic.
+
+`kB'
+ kilobyte: 10^3 = 1000.
+
+`k'
+`K'
+`KiB'
+ kibibyte: 2^10 = 1024. `K' is special: the SI prefix is `k' and
+ the IEC 60027-2 prefix is `Ki', but tradition and POSIX use `k' to
+ mean `KiB'.
+
+`MB'
+ megabyte: 10^6 = 1,000,000.
+
+`M'
+`MiB'
+ mebibyte: 2^20 = 1,048,576.
+
+`GB'
+ gigabyte: 10^9 = 1,000,000,000.
+
+`G'
+`GiB'
+ gibibyte: 2^30 = 1,073,741,824.
+
+`TB'
+ terabyte: 10^12 = 1,000,000,000,000.
+
+`T'
+`TiB'
+ tebibyte: 2^40 = 1,099,511,627,776.
+
+`PB'
+ petabyte: 10^15 = 1,000,000,000,000,000.
+
+`P'
+`PiB'
+ pebibyte: 2^50 = 1,125,899,906,842,624.
+
+`EB'
+ exabyte: 10^18 = 1,000,000,000,000,000,000.
+
+`E'
+`EiB'
+ exbibyte: 2^60 = 1,152,921,504,606,846,976.
+
+`ZB'
+ zettabyte: 10^21 = 1,000,000,000,000,000,000,000
+
+`Z'
+`ZiB'
+ 2^70 = 1,180,591,620,717,411,303,424. (`Zi' is a GNU extension to
+ IEC 60027-2.)
+
+`YB'
+ yottabyte: 10^24 = 1,000,000,000,000,000,000,000,000.
+
+`Y'
+`YiB'
+ 2^80 = 1,208,925,819,614,629,174,706,176. (`Yi' is a GNU
+ extension to IEC 60027-2.)
+
+ Block size defaults can be overridden by an explicit
+`--block-size=SIZE' option. The `-k' option is equivalent to
+`--block-size=1K', which is the default unless the `POSIXLY_CORRECT'
+environment variable is set. The `-h' or `--human-readable' option is
+equivalent to `--block-size=human-readable'. The `--si' option is
+equivalent to `--block-size=si'.
+
+
+File: coreutils.info, Node: Target directory, Next: Trailing slashes, Prev: Block size, Up: Common options
+
+2.4 Target directory
+====================
+
+The `cp', `install', `ln', and `mv' commands normally treat the last
+operand specially when it is a directory or a symbolic link to a
+directory. For example, `cp source dest' is equivalent to `cp source
+dest/source' if `dest' is a directory. Sometimes this behavior is not
+exactly what is wanted, so these commands support the following options
+to allow more fine-grained control:
+
+`-T'
+`--no-target-directory'
+ Do not treat the last operand specially when it is a directory or a
+ symbolic link to a directory. This can help avoid race conditions
+ in programs that operate in a shared area. For example, when the
+ command `mv /tmp/source /tmp/dest' succeeds, there is no guarantee
+ that `/tmp/source' was renamed to `/tmp/dest': it could have been
+ renamed to `/tmp/dest/source' instead, if some other process
+ created `/tmp/dest' as a directory. However, if `mv -T
+ /tmp/source /tmp/dest' succeeds, there is no question that
+ `/tmp/source' was renamed to `/tmp/dest'.
+
+ In the opposite situation, where you want the last operand to be
+ treated as a directory and want a diagnostic otherwise, you can use
+ the `--target-directory' (`-t') option.
+
+`-t DIRECTORY'
+`--target-directory=DIRECTORY'
+ Use DIRECTORY as the directory component of each destination file
+ name.
+
+ The interface for most programs is that after processing options
+ and a finite (possibly zero) number of fixed-position arguments,
+ the remaining argument list is either expected to be empty, or is
+ a list of items (usually files) that will all be handled
+ identically. The `xargs' program is designed to work well with
+ this convention.
+
+ The commands in the `mv'-family are unusual in that they take a
+ variable number of arguments with a special case at the _end_
+ (namely, the target directory). This makes it nontrivial to
+ perform some operations, e.g., "move all files from here to
+ ../d/", because `mv * ../d/' might exhaust the argument space, and
+ `ls | xargs ...' doesn't have a clean way to specify an extra
+ final argument for each invocation of the subject command. (It
+ can be done by going through a shell command, but that requires
+ more human labor and brain power than it should.)
+
+ The `--target-directory' (`-t') option allows the `cp', `install',
+ `ln', and `mv' programs to be used conveniently with `xargs'. For
+ example, you can move the files from the current directory to a
+ sibling directory, `d' like this:
+
+ ls | xargs mv -t ../d --
+
+ However, this doesn't move files whose names begin with `.'. If
+ you use the GNU `find' program, you can move those files too, with
+ this command:
+
+ find . -mindepth 1 -maxdepth 1 \
+ | xargs mv -t ../d
+
+ But both of the above approaches fail if there are no files in the
+ current directory, or if any file has a name containing a blank or
+ some other special characters. The following example removes
+ those limitations and requires both GNU `find' and GNU `xargs':
+
+ find . -mindepth 1 -maxdepth 1 -print0 \
+ | xargs --null --no-run-if-empty \
+ mv -t ../d
+
+
+The `--target-directory' (`-t') and `--no-target-directory' (`-T')
+options cannot be combined.
+
+
+File: coreutils.info, Node: Trailing slashes, Next: Traversing symlinks, Prev: Target directory, Up: Common options
+
+2.5 Trailing slashes
+====================
+
+Some GNU programs (at least `cp' and `mv') allow you to remove any
+trailing slashes from each SOURCE argument before operating on it. The
+`--strip-trailing-slashes' option enables this behavior.
+
+ This is useful when a SOURCE argument may have a trailing slash and
+specify a symbolic link to a directory. This scenario is in fact rather
+common because some shells can automatically append a trailing slash
+when performing file name completion on such symbolic links. Without
+this option, `mv', for example, (via the system's rename function) must
+interpret a trailing slash as a request to dereference the symbolic link
+and so must rename the indirectly referenced _directory_ and not the
+symbolic link. Although it may seem surprising that such behavior be
+the default, it is required by POSIX and is consistent with other parts
+of that standard.
+
+
+File: coreutils.info, Node: Traversing symlinks, Next: Treating / specially, Prev: Trailing slashes, Up: Common options
+
+2.6 Traversing symlinks
+=======================
+
+The following options modify how `chown' and `chgrp' traverse a
+hierarchy when the `--recursive' (`-R') option is also specified. If
+more than one of the following options is specified, only the final one
+takes effect. These options specify whether processing a symbolic link
+to a directory entails operating on just the symbolic link or on all
+files in the hierarchy rooted at that directory.
+
+ These options are independent of `--dereference' and
+`--no-dereference' (`-h'), which control whether to modify a symlink or
+its referent.
+
+`-H'
+ If `--recursive' (`-R') is specified and a command line argument
+ is a symbolic link to a directory, traverse it.
+
+`-L'
+ In a recursive traversal, traverse every symbolic link to a
+ directory that is encountered.
+
+`-P'
+ Do not traverse any symbolic links. This is the default if none
+ of `-H', `-L', or `-P' is specified.
+
+
+
+File: coreutils.info, Node: Treating / specially, Next: Special built-in utilities, Prev: Traversing symlinks, Up: Common options
+
+2.7 Treating / specially
+========================
+
+Certain commands can operate destructively on entire hierarchies. For
+example, if a user with appropriate privileges mistakenly runs `rm -rf
+/ tmp/junk' or `cd /bin; rm -rf ../', that may remove all files on the
+entire system. Since there are so few (1) legitimate uses for such a
+command, GNU `rm' provides the `--preserve-root' option to make it so
+`rm' declines to operate on any directory that resolves to `/'. The
+default is still to allow `rm -rf /' to operate unimpeded. Another new
+option, `--no-preserve-root', cancels the effect of any preceding
+`--preserve-root' option. Note that the `--preserve-root' behavior may
+become the default for `rm'.
+
+ The commands `chgrp', `chmod' and `chown' can also operate
+destructively on entire hierarchies, so they too support these options.
+Although, unlike `rm', they don't actually unlink files, these
+commands are arguably more dangerous when operating recursively on `/',
+since they often work much more quickly, and hence damage more files
+before an alert user can interrupt them.
+
+ ---------- Footnotes ----------
+
+ (1) If you know of one, please write to <bug-coreutils@gnu.org>.
+
+
+File: coreutils.info, Node: Special built-in utilities, Next: Standards conformance, Prev: Treating / specially, Up: Common options
+
+2.8 Special built-in utilities
+==============================
+
+Some programs like `nice' can invoke other programs; for example, the
+command `nice cat file' invokes the program `cat' by executing the
+command `cat file'. However, "special built-in utilities" like `exit'
+cannot be invoked this way. For example, the command `nice exit' does
+not have a well-defined behavior: it may generate an error message
+instead of exiting.
+
+ Here is a list of the special built-in utilities that are
+standardized by POSIX 1003.1-2004.
+
+ . : break continue eval exec exit export readonly return set shift
+ times trap unset
+
+ For example, because `.', `:', and `exec' are special, the commands
+`nice . foo.sh', `nice :', and `nice exec pwd' do not work as you might
+expect.
+
+ Many shells extend this list. For example, Bash has several extra
+special built-in utilities like `history', and `suspend', and with Bash
+the command `nice suspend' generates an error message instead of
+suspending.
+
+
+File: coreutils.info, Node: Standards conformance, Prev: Special built-in utilities, Up: Common options
+
+2.9 Standards conformance
+=========================
+
+In a few cases, the GNU utilities' default behavior is incompatible
+with the POSIX standard. To suppress these incompatibilities, define
+the `POSIXLY_CORRECT' environment variable. Unless you are checking
+for POSIX conformance, you probably do not need to define
+`POSIXLY_CORRECT'.
+
+ Newer versions of POSIX are occasionally incompatible with older
+versions. For example, older versions of POSIX required the command
+`sort +1' to sort based on the second and succeeding fields in each
+input line, but starting with POSIX 1003.1-2001 the same command is
+required to sort the file named `+1', and you must instead use the
+command `sort -k 2' to get the field-based sort.
+
+ The GNU utilities normally conform to the version of POSIX that is
+standard for your system. To cause them to conform to a different
+version of POSIX, define the `_POSIX2_VERSION' environment variable to
+a value of the form YYYYMM specifying the year and month the standard
+was adopted. Two values are currently supported for `_POSIX2_VERSION':
+`199209' stands for POSIX 1003.2-1992, and `200112' stands for POSIX
+1003.1-2001. For example, if you are running older software that
+assumes an older version of POSIX and uses `sort +1', `head -10', or
+`tail +10', you can work around the compatibility problems by setting
+`_POSIX2_VERSION=199209' in your environment.
+
+
+File: coreutils.info, Node: Output of entire files, Next: Formatting file contents, Prev: Common options, Up: Top
+
+3 Output of entire files
+************************
+
+These commands read and write entire files, possibly transforming them
+in some way.
+
+* Menu:
+
+* cat invocation:: Concatenate and write files.
+* tac invocation:: Concatenate and write files in reverse.
+* nl invocation:: Number lines and write files.
+* od invocation:: Write files in octal or other formats.
+
+
+File: coreutils.info, Node: cat invocation, Next: tac invocation, Up: Output of entire files
+
+3.1 `cat': Concatenate and write files
+======================================
+
+`cat' copies each FILE (`-' means standard input), or standard input if
+none are given, to standard output. Synopsis:
+
+ cat [OPTION] [FILE]...
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-A'
+`--show-all'
+ Equivalent to `-vET'.
+
+`-B'
+`--binary'
+ On MS-DOS and MS-Windows only, read and write the files in binary
+ mode. By default, `cat' on MS-DOS/MS-Windows uses binary mode
+ only when standard output is redirected to a file or a pipe; this
+ option overrides that. Binary file I/O is used so that the files
+ retain their format (Unix text as opposed to DOS text and binary),
+ because `cat' is frequently used as a file-copying program. Some
+ options (see below) cause `cat' to read and write files in text
+ mode because in those cases the original file contents aren't
+ important (e.g., when lines are numbered by `cat', or when line
+ endings should be marked). This is so these options work as
+ DOS/Windows users would expect; for example, DOS-style text files
+ have their lines end with the CR-LF pair of characters, which
+ won't be processed as an empty line by `-b' unless the file is
+ read in text mode.
+
+`-b'
+`--number-nonblank'
+ Number all nonblank output lines, starting with 1. On MS-DOS and
+ MS-Windows, this option causes `cat' to read and write files in
+ text mode.
+
+`-e'
+ Equivalent to `-vE'.
+
+`-E'
+`--show-ends'
+ Display a `$' after the end of each line. On MS-DOS and
+ MS-Windows, this option causes `cat' to read and write files in
+ text mode.
+
+`-n'
+`--number'
+ Number all output lines, starting with 1. On MS-DOS and
+ MS-Windows, this option causes `cat' to read and write files in
+ text mode.
+
+`-s'
+`--squeeze-blank'
+ Replace multiple adjacent blank lines with a single blank line. On
+ MS-DOS and MS-Windows, this option causes `cat' to read and write
+ files in text mode.
+
+`-t'
+ Equivalent to `-vT'.
+
+`-T'
+`--show-tabs'
+ Display TAB characters as `^I'.
+
+`-u'
+ Ignored; for Unix compatibility.
+
+`-v'
+`--show-nonprinting'
+ Display control characters except for LFD and TAB using `^'
+ notation and precede characters that have the high bit set with
+ `M-'. On MS-DOS and MS-Windows, this option causes `cat' to read
+ files and standard input in DOS binary mode, so the CR characters
+ at the end of each line are also visible.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: tac invocation, Next: nl invocation, Prev: cat invocation, Up: Output of entire files
+
+3.2 `tac': Concatenate and write files in reverse
+=================================================
+
+`tac' copies each FILE (`-' means standard input), or standard input if
+none are given, to standard output, reversing the records (lines by
+default) in each separately. Synopsis:
+
+ tac [OPTION]... [FILE]...
+
+ "Records" are separated by instances of a string (newline by
+default). By default, this separator string is attached to the end of
+the record that it follows in the file.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-b'
+`--before'
+ The separator is attached to the beginning of the record that it
+ precedes in the file.
+
+`-r'
+`--regex'
+ Treat the separator string as a regular expression. Users of `tac'
+ on MS-DOS/MS-Windows should note that, since `tac' reads files in
+ binary mode, each line of a text file might end with a CR/LF pair
+ instead of the Unix-style LF.
+
+`-s SEPARATOR'
+`--separator=SEPARATOR'
+ Use SEPARATOR as the record separator, instead of newline.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: nl invocation, Next: od invocation, Prev: tac invocation, Up: Output of entire files
+
+3.3 `nl': Number lines and write files
+======================================
+
+`nl' writes each FILE (`-' means standard input), or standard input if
+none are given, to standard output, with line numbers added to some or
+all of the lines. Synopsis:
+
+ nl [OPTION]... [FILE]...
+
+ `nl' decomposes its input into (logical) pages; by default, the line
+number is reset to 1 at the top of each logical page. `nl' treats all
+of the input files as a single document; it does not reset line numbers
+or logical pages between files.
+
+ A logical page consists of three sections: header, body, and footer.
+Any of the sections can be empty. Each can be numbered in a different
+style from the others.
+
+ The beginnings of the sections of logical pages are indicated in the
+input file by a line containing exactly one of these delimiter strings:
+
+`\:\:\:'
+ start of header;
+
+`\:\:'
+ start of body;
+
+`\:'
+ start of footer.
+
+ The two characters from which these strings are made can be changed
+from `\' and `:' via options (see below), but the pattern and length of
+each string cannot be changed.
+
+ A section delimiter is replaced by an empty line on output. Any text
+that comes before the first section delimiter string in the input file
+is considered to be part of a body section, so `nl' treats a file that
+contains no section delimiters as a single body section.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-b STYLE'
+`--body-numbering=STYLE'
+ Select the numbering style for lines in the body section of each
+ logical page. When a line is not numbered, the current line number
+ is not incremented, but the line number separator character is
+ still prepended to the line. The styles are:
+
+ `a'
+ number all lines,
+
+ `t'
+ number only nonempty lines (default for body),
+
+ `n'
+ do not number lines (default for header and footer),
+
+ `pBRE'
+ number only lines that contain a match for the basic regular
+ expression BRE. *Note Regular Expressions: (grep)Regular
+ Expressions.
+
+`-d CD'
+`--section-delimiter=CD'
+ Set the section delimiter characters to CD; default is `\:'. If
+ only C is given, the second remains `:'. (Remember to protect `\'
+ or other metacharacters from shell expansion with quotes or extra
+ backslashes.)
+
+`-f STYLE'
+`--footer-numbering=STYLE'
+ Analogous to `--body-numbering'.
+
+`-h STYLE'
+`--header-numbering=STYLE'
+ Analogous to `--body-numbering'.
+
+`-i NUMBER'
+`--page-increment=NUMBER'
+ Increment line numbers by NUMBER (default 1).
+
+`-l NUMBER'
+`--join-blank-lines=NUMBER'
+ Consider NUMBER (default 1) consecutive empty lines to be one
+ logical line for numbering, and only number the last one. Where
+ fewer than NUMBER consecutive empty lines occur, do not number
+ them. An empty line is one that contains no characters, not even
+ spaces or tabs.
+
+`-n FORMAT'
+`--number-format=FORMAT'
+ Select the line numbering format (default is `rn'):
+
+ `ln'
+ left justified, no leading zeros;
+
+ `rn'
+ right justified, no leading zeros;
+
+ `rz'
+ right justified, leading zeros.
+
+`-p'
+`--no-renumber'
+ Do not reset the line number at the start of a logical page.
+
+`-s STRING'
+`--number-separator=STRING'
+ Separate the line number from the text line in the output with
+ STRING (default is the TAB character).
+
+`-v NUMBER'
+`--starting-line-number=NUMBER'
+ Set the initial line number on each logical page to NUMBER
+ (default 1).
+
+`-w NUMBER'
+`--number-width=NUMBER'
+ Use NUMBER characters for line numbers (default 6).
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: od invocation, Prev: nl invocation, Up: Output of entire files
+
+3.4 `od': Write files in octal or other formats
+===============================================
+
+`od' writes an unambiguous representation of each FILE (`-' means
+standard input), or standard input if none are given. Synopses:
+
+ od [OPTION]... [FILE]...
+ od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]]
+ od [OPTION]... --traditional [FILE] [[+]OFFSET[.][b] [[+]LABEL[.][b]]]
+
+ Each line of output consists of the offset in the input, followed by
+groups of data from the file. By default, `od' prints the offset in
+octal, and each group of file data is a C `short int''s worth of input
+printed as a single octal number.
+
+ If OFFSET is given, it specifies how many input bytes to skip before
+formatting and writing. By default, it is interpreted as an octal
+number, but the optional trailing decimal point causes it to be
+interpretated as decimal. If no decimal is specified and the offset
+begins with `0x' or `0X' it is interpreted as a hexadecimal number. If
+there is a trailing `b', the number of bytes skipped will be OFFSET
+multiplied by 512.
+
+ If a command is of both the first and second forms, the second form
+is assumed if the last operand begins with `+' or (if there are two
+operands) a digit. For example, in `od foo 10' and `od +10' the `10'
+is an offset, whereas in `od 10' the `10' is a file name.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-A RADIX'
+`--address-radix=RADIX'
+ Select the base in which file offsets are printed. RADIX can be
+ one of the following:
+
+ `d'
+ decimal;
+
+ `o'
+ octal;
+
+ `x'
+ hexadecimal;
+
+ `n'
+ none (do not print offsets).
+
+ The default is octal.
+
+`-j BYTES'
+`--skip-bytes=BYTES'
+ Skip BYTES input bytes before formatting and writing. If BYTES
+ begins with `0x' or `0X', it is interpreted in hexadecimal;
+ otherwise, if it begins with `0', in octal; otherwise, in decimal.
+ Appending `b' multiplies BYTES by 512, `k' by 1024, and `m' by
+ 1048576.
+
+`-N BYTES'
+`--read-bytes=BYTES'
+ Output at most BYTES bytes of the input. Prefixes and suffixes on
+ `bytes' are interpreted as for the `-j' option.
+
+`-S N'
+`--strings[=N]'
+ Instead of the normal output, output only "string constants": at
+ least N consecutive ASCII graphic characters, followed by a null
+ (zero) byte.
+
+ If N is omitted with `--strings', the default is 3.
+
+`-t TYPE'
+`--format=TYPE'
+ Select the format in which to output the file data. TYPE is a
+ string of one or more of the below type indicator characters. If
+ you include more than one type indicator character in a single TYPE
+ string, or use this option more than once, `od' writes one copy of
+ each output line using each of the data types that you specified,
+ in the order that you specified.
+
+ Adding a trailing "z" to any type specification appends a display
+ of the ASCII character representation of the printable characters
+ to the output line generated by the type specification.
+
+ `a'
+ named character
+
+ `c'
+ ASCII character or backslash escape,
+
+ `d'
+ signed decimal
+
+ `f'
+ floating point
+
+ `o'
+ octal
+
+ `u'
+ unsigned decimal
+
+ `x'
+ hexadecimal
+
+ The type `a' outputs things like `sp' for space, `nl' for newline,
+ and `nul' for a null (zero) byte. Type `c' outputs ` ', `\n', and
+ `\0', respectively.
+
+ Except for types `a' and `c', you can specify the number of bytes
+ to use in interpreting each number in the given data type by
+ following the type indicator character with a decimal integer.
+ Alternately, you can specify the size of one of the C compiler's
+ built-in data types by following the type indicator character with
+ one of the following characters. For integers (`d', `o', `u',
+ `x'):
+
+ `C'
+ char
+
+ `S'
+ short
+
+ `I'
+ int
+
+ `L'
+ long
+
+ For floating point (`f'):
+
+ F
+ float
+
+ D
+ double
+
+ L
+ long double
+
+`-v'
+`--output-duplicates'
+ Output consecutive lines that are identical. By default, when two
+ or more consecutive output lines would be identical, `od' outputs
+ only the first line, and puts just an asterisk on the following
+ line to indicate the elision.
+
+`-w N'
+`--width[=N]'
+ Dump `n' input bytes per output line. This must be a multiple of
+ the least common multiple of the sizes associated with the
+ specified output types.
+
+ If this option is not given at all, the default is 16. If N is
+ omitted with `--width', the default is 32. On older systems, GNU
+ `od' instead supports an obsolete option `-w[N]', where N also
+ defaults to 32. POSIX 1003.1-2001 (*note Standards conformance::)
+ does not allow `-w' without an argument; use `--width' instead.
+
+
+ The next several options are shorthands for format specifications.
+GNU `od' accepts any combination of shorthands and format specification
+options. These options accumulate.
+
+`-a'
+ Output as named characters. Equivalent to `-t a'.
+
+`-b'
+ Output as octal bytes. Equivalent to `-t o1'.
+
+`-c'
+ Output as ASCII characters or backslash escapes. Equivalent to
+ `-t c'.
+
+`-d'
+ Output as unsigned decimal two-byte units. Equivalent to `-t u2'.
+
+`-f'
+ Output as floats. Equivalent to `-t fF'.
+
+`-i'
+ Output as decimal ints. Equivalent to `-t dI'.
+
+`-l'
+ Output as decimal long ints. Equivalent to `-t dL'.
+
+`-o'
+ Output as octal two-byte units. Equivalent to `-t o2'.
+
+`-s'
+ Output as decimal two-byte units. Equivalent to `-t d2'.
+
+`-x'
+ Output as hexadecimal two-byte units. Equivalent to `-t x2'.
+
+`--traditional'
+ Recognize the non-option label argument that traditional `od'
+ accepted. The following syntax:
+
+ od --traditional [FILE] [[+]OFFSET[.][b] [[+]LABEL[.][b]]]
+
+ can be used to specify at most one file and optional arguments
+ specifying an offset and a pseudo-start address, LABEL. The LABEL
+ argument is interpreted just like OFFSET, but it specifies an
+ initial pseudo-address. The pseudo-addresses are displayed in
+ parentheses following any normal address.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Formatting file contents, Next: Output of parts of files, Prev: Output of entire files, Up: Top
+
+4 Formatting file contents
+**************************
+
+These commands reformat the contents of files.
+
+* Menu:
+
+* fmt invocation:: Reformat paragraph text.
+* pr invocation:: Paginate or columnate files for printing.
+* fold invocation:: Wrap input lines to fit in specified width.
+
+
+File: coreutils.info, Node: fmt invocation, Next: pr invocation, Up: Formatting file contents
+
+4.1 `fmt': Reformat paragraph text
+==================================
+
+`fmt' fills and joins lines to produce output lines of (at most) a
+given number of characters (75 by default). Synopsis:
+
+ fmt [OPTION]... [FILE]...
+
+ `fmt' reads from the specified FILE arguments (or standard input if
+none are given), and writes to standard output.
+
+ By default, blank lines, spaces between words, and indentation are
+preserved in the output; successive input lines with different
+indentation are not joined; tabs are expanded on input and introduced on
+output.
+
+ `fmt' prefers breaking lines at the end of a sentence, and tries to
+avoid line breaks after the first word of a sentence or before the last
+word of a sentence. A "sentence break" is defined as either the end of
+a paragraph or a word ending in any of `.?!', followed by two spaces or
+end of line, ignoring any intervening parentheses or quotes. Like TeX,
+`fmt' reads entire "paragraphs" before choosing line breaks; the
+algorithm is a variant of that given by Donald E. Knuth and Michael F.
+Plass in "Breaking Paragraphs Into Lines", `Software--Practice &
+Experience' 11, 11 (November 1981), 1119-1184.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-c'
+`--crown-margin'
+ "Crown margin" mode: preserve the indentation of the first two
+ lines within a paragraph, and align the left margin of each
+ subsequent line with that of the second line.
+
+`-t'
+`--tagged-paragraph'
+ "Tagged paragraph" mode: like crown margin mode, except that if
+ indentation of the first line of a paragraph is the same as the
+ indentation of the second, the first line is treated as a one-line
+ paragraph.
+
+`-s'
+`--split-only'
+ Split lines only. Do not join short lines to form longer ones.
+ This prevents sample lines of code, and other such "formatted"
+ text from being unduly combined.
+
+`-u'
+`--uniform-spacing'
+ Uniform spacing. Reduce spacing between words to one space, and
+ spacing between sentences to two spaces.
+
+`-WIDTH'
+`-w WIDTH'
+`--width=WIDTH'
+ Fill output lines up to WIDTH characters (default 75). `fmt'
+ initially tries to make lines about 7% shorter than this, to give
+ it room to balance line lengths.
+
+`-p PREFIX'
+`--prefix=PREFIX'
+ Only lines beginning with PREFIX (possibly preceded by whitespace)
+ are subject to formatting. The prefix and any preceding
+ whitespace are stripped for the formatting and then re-attached to
+ each formatted output line. One use is to format certain kinds of
+ program comments, while leaving the code unchanged.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: pr invocation, Next: fold invocation, Prev: fmt invocation, Up: Formatting file contents
+
+4.2 `pr': Paginate or columnate files for printing
+==================================================
+
+`pr' writes each FILE (`-' means standard input), or standard input if
+none are given, to standard output, paginating and optionally
+outputting in multicolumn format; optionally merges all FILEs, printing
+all in parallel, one per column. Synopsis:
+
+ pr [OPTION]... [FILE]...
+
+ By default, a 5-line header is printed at each page: two blank lines;
+a line with the date, the file name, and the page count; and two more
+blank lines. A footer of five blank lines is also printed. With the
+`-F' option, a 3-line header is printed: the leading two blank lines are
+omitted; no footer is used. The default PAGE_LENGTH in both cases is 66
+lines. The default number of text lines changes from 56 (without `-F')
+to 63 (with `-F'). The text line of the header takes the form `DATE
+STRING PAGE', with spaces inserted around STRING so that the line takes
+up the full PAGE_WIDTH. Here, DATE is the date (see the `-D' or
+`--date-format' option for details), STRING is the centered header
+string, and PAGE identifies the page number. The `LC_MESSAGES' locale
+category affects the spelling of PAGE; in the default C locale, it is
+`Page NUMBER' where NUMBER is the decimal page number.
+
+ Form feeds in the input cause page breaks in the output. Multiple
+form feeds produce empty pages.
+
+ Columns are of equal width, separated by an optional string (default
+is `space'). For multicolumn output, lines will always be truncated to
+PAGE_WIDTH (default 72), unless you use the `-J' option. For single
+column output no line truncation occurs by default. Use `-W' option to
+truncate lines in that case.
+
+ The following changes were made in version 1.22i and apply to later
+versions of `pr': - Brian
+ * Some small LETTER OPTIONS (`-s', `-w') have been redefined for
+ better POSIX compliance. The output of some further cases has
+ been adapted to other Unix systems. These changes are not
+ compatible with earlier versions of the program.
+
+ * Some NEW CAPITAL LETTER options (`-J', `-S', `-W') have been
+ introduced to turn off unexpected interferences of small letter
+ options. The `-N' option and the second argument LAST_PAGE of
+ `+FIRST_PAGE' offer more flexibility. The detailed handling of
+ form feeds set in the input files requires the `-T' option.
+
+ * Capital letter options override small letter ones.
+
+ * Some of the option-arguments (compare `-s', `-e', `-i', `-n')
+ cannot be specified as separate arguments from the preceding
+ option letter (already stated in the POSIX specification).
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`+FIRST_PAGE[:LAST_PAGE]'
+`--pages=FIRST_PAGE[:LAST_PAGE]'
+ Begin printing with page FIRST_PAGE and stop with LAST_PAGE.
+ Missing `:LAST_PAGE' implies end of file. While estimating the
+ number of skipped pages each form feed in the input file results
+ in a new page. Page counting with and without `+FIRST_PAGE' is
+ identical. By default, counting starts with the first page of
+ input file (not first page printed). Line numbering may be
+ altered by `-N' option.
+
+`-COLUMN'
+`--columns=COLUMN'
+ With each single FILE, produce COLUMN columns of output (default
+ is 1) and print columns down, unless `-a' is used. The column
+ width is automatically decreased as COLUMN increases; unless you
+ use the `-W/-w' option to increase PAGE_WIDTH as well. This
+ option might well cause some lines to be truncated. The number of
+ lines in the columns on each page are balanced. The options `-e'
+ and `-i' are on for multiple text-column output. Together with
+ `-J' option column alignment and line truncation is turned off.
+ Lines of full length are joined in a free field format and `-S'
+ option may set field separators. `-COLUMN' may not be used with
+ `-m' option.
+
+`-a'
+`--across'
+ With each single FILE, print columns across rather than down. The
+ `-COLUMN' option must be given with COLUMN greater than one. If a
+ line is too long to fit in a column, it is truncated.
+
+`-c'
+`--show-control-chars'
+ Print control characters using hat notation (e.g., `^G'); print
+ other nonprinting characters in octal backslash notation. By
+ default, nonprinting characters are not changed.
+
+`-d'
+`--double-space'
+ Double space the output.
+
+`-D FORMAT'
+`--date-format=FORMAT'
+ Format header dates using FORMAT, using the same conventions as
+ for the the command `date +FORMAT'; *Note date invocation::.
+ Except for directives, which start with `%', characters in FORMAT
+ are printed unchanged. You can use this option to specify an
+ arbitrary string in place of the header date, e.g.,
+ `--date-format="Monday morning"'.
+
+ Normally the date format defaults to `%Y-%m-%d %H:%M' (for
+ example, `2001-12-04 23:59'); but if the `POSIXLY_CORRECT'
+ environment variable is set and the `LC_TIME' locale category
+ specifies the POSIX locale, the default is `%b %e %H:%M %Y' (for
+ example, `Dec 4 23:59 2001'.
+
+ Time stamps are listed according to the time zone rules specified
+ by the `TZ' environment variable, or by the system default rules if
+ `TZ' is not set. *Note Specifying the Time Zone with `TZ':
+ (libc)TZ Variable.
+
+`-e[IN-TABCHAR[IN-TABWIDTH]]'
+`--expand-tabs[=IN-TABCHAR[IN-TABWIDTH]]'
+ Expand TABs to spaces on input. Optional argument IN-TABCHAR is
+ the input tab character (default is the TAB character). Second
+ optional argument IN-TABWIDTH is the input tab character's width
+ (default is 8).
+
+`-f'
+`-F'
+`--form-feed'
+ Use a form feed instead of newlines to separate output pages. The
+ default page length of 66 lines is not altered. But the number of
+ lines of text per page changes from default 56 to 63 lines.
+
+`-h HEADER'
+`--header=HEADER'
+ Replace the file name in the header with the centered string
+ HEADER. When using the shell, HEADER should be quoted and should
+ be separated from `-h' by a space.
+
+`-i[OUT-TABCHAR[OUT-TABWIDTH]]'
+`--output-tabs[=OUT-TABCHAR[OUT-TABWIDTH]]'
+ Replace spaces with TABs on output. Optional argument OUT-TABCHAR
+ is the output tab character (default is the TAB character).
+ Second optional argument OUT-TABWIDTH is the output tab
+ character's width (default is 8).
+
+`-J'
+`--join-lines'
+ Merge lines of full length. Used together with the column options
+ `-COLUMN', `-a -COLUMN' or `-m'. Turns off `-W/-w' line
+ truncation; no column alignment used; may be used with
+ `--sep-string[=STRING]'. `-J' has been introduced (together with
+ `-W' and `--sep-string') to disentangle the old (POSIX-compliant)
+ options `-w' and `-s' along with the three column options.
+
+`-l PAGE_LENGTH'
+`--length=PAGE_LENGTH'
+ Set the page length to PAGE_LENGTH (default 66) lines, including
+ the lines of the header [and the footer]. If PAGE_LENGTH is less
+ than or equal to 10 (or <= 3 with `-F'), the header and footer are
+ omitted, and all form feeds set in input files are eliminated, as
+ if the `-T' option had been given.
+
+`-m'
+`--merge'
+ Merge and print all FILEs in parallel, one in each column. If a
+ line is too long to fit in a column, it is truncated, unless the
+ `-J' option is used. `--sep-string[=STRING]' may be used. Empty
+ pages in some FILEs (form feeds set) produce empty columns, still
+ marked by STRING. The result is a continuous line numbering and
+ column marking throughout the whole merged file. Completely empty
+ merged pages show no separators or line numbers. The default
+ header becomes `DATE PAGE' with spaces inserted in the middle; this
+ may be used with the `-h' or `--header' option to fill up the
+ middle blank part.
+
+`-n[NUMBER-SEPARATOR[DIGITS]]'
+`--number-lines[=NUMBER-SEPARATOR[DIGITS]]'
+ Provide DIGITS digit line numbering (default for DIGITS is 5).
+ With multicolumn output the number occupies the first DIGITS
+ column positions of each text column or only each line of `-m'
+ output. With single column output the number precedes each line
+ just as `-m' does. Default counting of the line numbers starts
+ with the first line of the input file (not the first line printed,
+ compare the `--page' option and `-N' option). Optional argument
+ NUMBER-SEPARATOR is the character appended to the line number to
+ separate it from the text followed. The default separator is the
+ TAB character. In a strict sense a TAB is always printed with
+ single column output only. The TAB-width varies with the
+ TAB-position, e.g., with the left MARGIN specified by `-o' option.
+ With multicolumn output priority is given to `equal width of
+ output columns' (a POSIX specification). The TAB-width is fixed
+ to the value of the first column and does not change with
+ different values of left MARGIN. That means a fixed number of
+ spaces is always printed in the place of the NUMBER-SEPARATOR TAB.
+ The tabification depends upon the output position.
+
+`-N LINE_NUMBER'
+`--first-line-number=LINE_NUMBER'
+ Start line counting with the number LINE_NUMBER at first line of
+ first page printed (in most cases not the first line of the input
+ file).
+
+`-o MARGIN'
+`--indent=MARGIN'
+ Indent each line with a margin MARGIN spaces wide (default is
+ zero). The total page width is the size of the margin plus the
+ PAGE_WIDTH set with the `-W/-w' option. A limited overflow may
+ occur with numbered single column output (compare `-n' option).
+
+`-r'
+`--no-file-warnings'
+ Do not print a warning message when an argument FILE cannot be
+ opened. (The exit status will still be nonzero, however.)
+
+`-s[CHAR]'
+`--separator[=CHAR]'
+ Separate columns by a single character CHAR. The default for CHAR
+ is the TAB character without `-w' and `no character' with `-w'.
+ Without `-s' the default separator `space' is set. `-s[char]'
+ turns off line truncation of all three column options
+ (`-COLUMN'|`-a -COLUMN'|`-m') unless `-w' is set. This is a
+ POSIX-compliant formulation.
+
+`-S STRING'
+`--sep-string[=STRING]'
+ Use STRING to separate output columns. The `-S' option doesn't
+ affect the `-W/-w' option, unlike the `-s' option which does. It
+ does not affect line truncation or column alignment. Without
+ `-S', and with `-J', `pr' uses the default output separator, TAB.
+ Without `-S' or `-J', `pr' uses a `space' (same as `-S" "'). With
+ `-SSTRING', STRING must be nonempty; `--sep-string' with no STRING
+ is equivalent to `--sep-string=""'.
+
+ On older systems, `pr' instead supports an obsolete option
+ `-S[STRING]', where STRING is optional. POSIX 1003.1-2001 (*note
+ Standards conformance::) does not allow this older usage. To
+ specify an empty STRING portably, use `--sep-string'.
+
+`-t'
+`--omit-header'
+ Do not print the usual header [and footer] on each page, and do
+ not fill out the bottom of pages (with blank lines or a form
+ feed). No page structure is produced, but form feeds set in the
+ input files are retained. The predefined pagination is not
+ changed. `-t' or `-T' may be useful together with other options;
+ e.g.: `-t -e4', expand TAB characters in the input file to 4
+ spaces but don't make any other changes. Use of `-t' overrides
+ `-h'.
+
+`-T'
+`--omit-pagination'
+ Do not print header [and footer]. In addition eliminate all form
+ feeds set in the input files.
+
+`-v'
+`--show-nonprinting'
+ Print nonprinting characters in octal backslash notation.
+
+`-w PAGE_WIDTH'
+`--width=PAGE_WIDTH'
+ Set page width to PAGE_WIDTH characters for multiple text-column
+ output only (default for PAGE_WIDTH is 72). `-s[CHAR]' turns off
+ the default page width and any line truncation and column
+ alignment. Lines of full length are merged, regardless of the
+ column options set. No PAGE_WIDTH setting is possible with single
+ column output. A POSIX-compliant formulation.
+
+`-W PAGE_WIDTH'
+`--page_width=PAGE_WIDTH'
+ Set the page width to PAGE_WIDTH characters. That's valid with and
+ without a column option. Text lines are truncated, unless `-J' is
+ used. Together with one of the three column options (`-COLUMN',
+ `-a -COLUMN' or `-m') column alignment is always used. The
+ separator options `-S' or `-s' don't affect the `-W' option.
+ Default is 72 characters. Without `-W PAGE_WIDTH' and without any
+ of the column options NO line truncation is used (defined to keep
+ downward compatibility and to meet most frequent tasks). That's
+ equivalent to `-W 72 -J'. The header line is never truncated.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: fold invocation, Prev: pr invocation, Up: Formatting file contents
+
+4.3 `fold': Wrap input lines to fit in specified width
+======================================================
+
+`fold' writes each FILE (`-' means standard input), or standard input
+if none are given, to standard output, breaking long lines. Synopsis:
+
+ fold [OPTION]... [FILE]...
+
+ By default, `fold' breaks lines wider than 80 columns. The output
+is split into as many lines as necessary.
+
+ `fold' counts screen columns by default; thus, a tab may count more
+than one column, backspace decreases the column count, and carriage
+return sets the column to zero.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-b'
+`--bytes'
+ Count bytes rather than columns, so that tabs, backspaces, and
+ carriage returns are each counted as taking up one column, just
+ like other characters.
+
+`-s'
+`--spaces'
+ Break at word boundaries: the line is broken after the last blank
+ before the maximum line length. If the line contains no such
+ blanks, the line is broken at the maximum line length as usual.
+
+`-w WIDTH'
+`--width=WIDTH'
+ Use a maximum line length of WIDTH columns instead of 80.
+
+ On older systems, `fold' supports an obsolete option `-WIDTH'.
+ POSIX 1003.1-2001 (*note Standards conformance::) does not allow
+ this; use `-w WIDTH' instead.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Output of parts of files, Next: Summarizing files, Prev: Formatting file contents, Up: Top
+
+5 Output of parts of files
+**************************
+
+These commands output pieces of the input.
+
+* Menu:
+
+* head invocation:: Output the first part of files.
+* tail invocation:: Output the last part of files.
+* split invocation:: Split a file into fixed-size pieces.
+* csplit invocation:: Split a file into context-determined pieces.
+
+
+File: coreutils.info, Node: head invocation, Next: tail invocation, Up: Output of parts of files
+
+5.1 `head': Output the first part of files
+==========================================
+
+`head' prints the first part (10 lines by default) of each FILE; it
+reads from standard input if no files are given or when given a FILE of
+`-'. Synopsis:
+
+ head [OPTION]... [FILE]...
+
+ If more than one FILE is specified, `head' prints a one-line header
+consisting of:
+
+ ==> FILE NAME <==
+
+before the output for each FILE.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-c N'
+`--bytes=N'
+ Print the first N bytes, instead of initial lines. Appending `b'
+ multiplies N by 512, `k' by 1024, and `m' by 1048576. However, if
+ N starts with a `-', print all but the last N bytes of each file.
+
+`-n N'
+`--lines=N'
+ Output the first N lines. However, if N starts with a `-', print
+ all but the last N lines of each file.
+
+`-q'
+`--quiet'
+`--silent'
+ Never print file name headers.
+
+`-v'
+`--verbose'
+ Always print file name headers.
+
+
+ On older systems, `head' supports an obsolete option
+`-COUNTOPTIONS', which is recognized only if it is specified first.
+COUNT is a decimal number optionally followed by a size letter (`b',
+`k', `m') as in `-c', or `l' to mean count by lines, or other option
+letters (`cqv'). POSIX 1003.1-2001 (*note Standards conformance::)
+does not allow this; use `-c COUNT' or `-n COUNT' instead.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: tail invocation, Next: split invocation, Prev: head invocation, Up: Output of parts of files
+
+5.2 `tail': Output the last part of files
+=========================================
+
+`tail' prints the last part (10 lines by default) of each FILE; it
+reads from standard input if no files are given or when given a FILE of
+`-'. Synopsis:
+
+ tail [OPTION]... [FILE]...
+
+ If more than one FILE is specified, `tail' prints a one-line header
+consisting of:
+
+ ==> FILE NAME <==
+
+before the output for each FILE.
+
+ GNU `tail' can output any amount of data (some other versions of
+`tail' cannot). It also has no `-r' option (print in reverse), since
+reversing a file is really a different job from printing the end of a
+file; BSD `tail' (which is the one with `-r') can only reverse files
+that are at most as large as its buffer, which is typically 32 KiB. A
+more reliable and versatile way to reverse files is the GNU `tac'
+command.
+
+ If any option-argument is a number N starting with a `+', `tail'
+begins printing with the Nth item from the start of each file, instead
+of from the end.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-c BYTES'
+`--bytes=BYTES'
+ Output the last BYTES bytes, instead of final lines. Appending
+ `b' multiplies BYTES by 512, `k' by 1024, and `m' by 1048576.
+
+`-f'
+`--follow[=HOW]'
+ Loop forever trying to read more characters at the end of the file,
+ presumably because the file is growing. This option is ignored if
+ no FILE operand is specified and standard input is a pipe. If
+ more than one file is given, `tail' prints a header whenever it
+ gets output from a different file, to indicate which file that
+ output is from.
+
+ There are two ways to specify how you'd like to track files with
+ this option, but that difference is noticeable only when a
+ followed file is removed or renamed. If you'd like to continue to
+ track the end of a growing file even after it has been unlinked,
+ use `--follow=descriptor'. This is the default behavior, but it
+ is not useful if you're tracking a log file that may be rotated
+ (removed or renamed, then reopened). In that case, use
+ `--follow=name' to track the named file by reopening it
+ periodically to see if it has been removed and recreated by some
+ other program.
+
+ No matter which method you use, if the tracked file is determined
+ to have shrunk, `tail' prints a message saying the file has been
+ truncated and resumes tracking the end of the file from the
+ newly-determined endpoint.
+
+ When a file is removed, `tail''s behavior depends on whether it is
+ following the name or the descriptor. When following by name,
+ tail can detect that a file has been removed and gives a message
+ to that effect, and if `--retry' has been specified it will
+ continue checking periodically to see if the file reappears. When
+ following a descriptor, tail does not detect that the file has
+ been unlinked or renamed and issues no message; even though the
+ file may no longer be accessible via its original name, it may
+ still be growing.
+
+ The option values `descriptor' and `name' may be specified only
+ with the long form of the option, not with `-f'.
+
+`-F'
+ This option is the same as `--follow=name --retry'. That is, tail
+ will attempt to reopen a file when it is removed. Should this
+ fail, tail will keep trying until it becomes accessible again.
+
+`--retry'
+ This option is meaningful only when following by name. Without
+ this option, when tail encounters a file that doesn't exist or is
+ otherwise inaccessible, it reports that fact and never checks it
+ again.
+
+`--sleep-interval=NUMBER'
+ Change the number of seconds to wait between iterations (the
+ default is 1.0). During one iteration, every specified file is
+ checked to see if it has changed size. Historical implementations
+ of `tail' have required that NUMBER be an integer. However, GNU
+ `tail' accepts an arbitrary floating point number (using a period
+ before any fractional digits).
+
+`--pid=PID'
+ When following by name or by descriptor, you may specify the
+ process ID, PID, of the sole writer of all FILE arguments. Then,
+ shortly after that process terminates, tail will also terminate.
+ This will work properly only if the writer and the tailing process
+ are running on the same machine. For example, to save the output
+ of a build in a file and to watch the file grow, if you invoke
+ `make' and `tail' like this then the tail process will stop when
+ your build completes. Without this option, you would have had to
+ kill the `tail -f' process yourself.
+
+ $ make >& makerr & tail --pid=$! -f makerr
+
+ If you specify a PID that is not in use or that does not correspond
+ to the process that is writing to the tailed files, then `tail'
+ may terminate long before any FILEs stop growing or it may not
+ terminate until long after the real writer has terminated. Note
+ that `--pid' cannot be supported on some systems; `tail' will
+ print a warning if this is the case.
+
+`--max-unchanged-stats=N'
+ When tailing a file by name, if there have been N (default
+ n=5) consecutive iterations for which the file has not changed,
+ then `open'/`fstat' the file to determine if that file name is
+ still associated with the same device/inode-number pair as before.
+ When following a log file that is rotated, this is approximately
+ the number of seconds between when tail prints the last
+ pre-rotation lines and when it prints the lines that have
+ accumulated in the new log file. This option is meaningful only
+ when following by name.
+
+`-n N'
+`--lines=N'
+ Output the last N lines.
+
+`-q'
+`--quiet'
+`--silent'
+ Never print file name headers.
+
+`-v'
+`--verbose'
+ Always print file name headers.
+
+
+ On older systems, `tail' supports an obsolete option
+`-COUNT[bcl][f]', which is recognized only if it is specified first.
+COUNT is an optional decimal number optionally followed by a size
+letter (`b', `c', `l') to mean count by 512-byte blocks, bytes, or
+lines, optionally followed by `f' which has the same meaning as `-f'.
+Also, the leading `-' can be replaced by `+' with the same meaning as
+in counts. POSIX 1003.1-2001 (*note Standards conformance::) does not
+allow most of these obsolete usages; use `-c COUNT[b]', `-n COUNT',
+and/or `-f' instead.
+
+ On older systems, obsolete usage overrides normal usage, so portable
+shell scripts should avoid commands that can be interpreted either way.
+For example, use `tail -- - file' rather than `tail - file', and use
+`tail -c4' rather than `tail -c 4'.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: split invocation, Next: csplit invocation, Prev: tail invocation, Up: Output of parts of files
+
+5.3 `split': Split a file into fixed-size pieces
+================================================
+
+`split' creates output files containing consecutive sections of INPUT
+(standard input if none is given or INPUT is `-'). Synopsis:
+
+ split [OPTION] [INPUT [PREFIX]]
+
+ By default, `split' puts 1000 lines of INPUT (or whatever is left
+over for the last section), into each output file.
+
+ The output files' names consist of PREFIX (`x' by default) followed
+by a group of characters (`aa', `ab', ... by default), such that
+concatenating the output files in traditional sorted order by file name
+produces the original input file. If the output file names are
+exhausted, `split' reports an error without deleting the output files
+that it did create.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-a LENGTH'
+`--suffix-length=LENGTH'
+ Use suffixes of length LENGTH. The default LENGTH is 2.
+
+`-l LINES'
+`--lines=LINES'
+ Put LINES lines of INPUT into each output file.
+
+ On older systems, `split' supports an obsolete option `-LINES'.
+ POSIX 1003.1-2001 (*note Standards conformance::) does not allow
+ this; use `-l LINES' instead.
+
+`-b BYTES'
+`--bytes=BYTES'
+ Put the first BYTES bytes of INPUT into each output file.
+ Appending `b' multiplies BYTES by 512, `k' by 1024, and `m' by
+ 1048576.
+
+`-C BYTES'
+`--line-bytes=BYTES'
+ Put into each output file as many complete lines of INPUT as
+ possible without exceeding BYTES bytes. For lines longer than
+ BYTES bytes, put BYTES bytes into each output file until less than
+ BYTES bytes of the line are left, then continue normally. BYTES
+ has the same format as for the `--bytes' option.
+
+`-d'
+`--numeric-suffixes'
+ Use digits in suffixes rather than lower-case letters.
+
+`--verbose'
+ Write a diagnostic to standard error just before each output file
+ is opened.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: csplit invocation, Prev: split invocation, Up: Output of parts of files
+
+5.4 `csplit': Split a file into context-determined pieces
+=========================================================
+
+`csplit' creates zero or more output files containing sections of INPUT
+(standard input if INPUT is `-'). Synopsis:
+
+ csplit [OPTION]... INPUT PATTERN...
+
+ The contents of the output files are determined by the PATTERN
+arguments, as detailed below. An error occurs if a PATTERN argument
+refers to a nonexistent line of the input file (e.g., if no remaining
+line matches a given regular expression). After every PATTERN has been
+matched, any remaining input is copied into one last output file.
+
+ By default, `csplit' prints the number of bytes written to each
+output file after it has been created.
+
+ The types of pattern arguments are:
+
+`N'
+ Create an output file containing the input up to but not including
+ line N (a positive integer). If followed by a repeat count, also
+ create an output file containing the next N lines of the input
+ file once for each repeat.
+
+`/REGEXP/[OFFSET]'
+ Create an output file containing the current line up to (but not
+ including) the next line of the input file that contains a match
+ for REGEXP. The optional OFFSET is an integer. If it is given,
+ the input up to (but not including) the matching line plus or
+ minus OFFSET is put into the output file, and the line after that
+ begins the next section of input.
+
+`%REGEXP%[OFFSET]'
+ Like the previous type, except that it does not create an output
+ file, so that section of the input file is effectively ignored.
+
+`{REPEAT-COUNT}'
+ Repeat the previous pattern REPEAT-COUNT additional times. The
+ REPEAT-COUNT can either be a positive integer or an asterisk,
+ meaning repeat as many times as necessary until the input is
+ exhausted.
+
+
+ The output files' names consist of a prefix (`xx' by default)
+followed by a suffix. By default, the suffix is an ascending sequence
+of two-digit decimal numbers from `00' to `99'. In any case,
+concatenating the output files in sorted order by file name produces the
+original input file.
+
+ By default, if `csplit' encounters an error or receives a hangup,
+interrupt, quit, or terminate signal, it removes any output files that
+it has created so far before it exits.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-f PREFIX'
+`--prefix=PREFIX'
+ Use PREFIX as the output file name prefix.
+
+`-b SUFFIX'
+`--suffix=SUFFIX'
+ Use SUFFIX as the output file name suffix. When this option is
+ specified, the suffix string must include exactly one
+ `printf(3)'-style conversion specification, possibly including
+ format specification flags, a field width, a precision
+ specifications, or all of these kinds of modifiers. The format
+ letter must convert a binary integer argument to readable form;
+ thus, only `d', `i', `u', `o', `x', and `X' conversions are
+ allowed. The entire SUFFIX is given (with the current output file
+ number) to `sprintf(3)' to form the file name suffixes for each of
+ the individual output files in turn. If this option is used, the
+ `--digits' option is ignored.
+
+`-n DIGITS'
+`--digits=DIGITS'
+ Use output file names containing numbers that are DIGITS digits
+ long instead of the default 2.
+
+`-k'
+`--keep-files'
+ Do not remove output files when errors are encountered.
+
+`-z'
+`--elide-empty-files'
+ Suppress the generation of zero-length output files. (In cases
+ where the section delimiters of the input file are supposed to
+ mark the first lines of each of the sections, the first output
+ file will generally be a zero-length file unless you use this
+ option.) The output file sequence numbers always run
+ consecutively starting from 0, even when this option is specified.
+
+`-s'
+`-q'
+`--silent'
+`--quiet'
+ Do not print counts of output file sizes.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Summarizing files, Next: Operating on sorted files, Prev: Output of parts of files, Up: Top
+
+6 Summarizing files
+*******************
+
+These commands generate just a few numbers representing entire contents
+of files.
+
+* Menu:
+
+* wc invocation:: Print newline, word, and byte counts.
+* sum invocation:: Print checksum and block counts.
+* cksum invocation:: Print CRC checksum and byte counts.
+* md5sum invocation:: Print or check message-digests.
+
+
+File: coreutils.info, Node: wc invocation, Next: sum invocation, Up: Summarizing files
+
+6.1 `wc': Print newline, word, and byte counts
+==============================================
+
+`wc' counts the number of bytes, characters, whitespace-separated
+words, and newlines in each given FILE, or standard input if none are
+given or for a FILE of `-'. Synopsis:
+
+ wc [OPTION]... [FILE]...
+
+ `wc' prints one line of counts for each file, and if the file was
+given as an argument, it prints the file name following the counts. If
+more than one FILE is given, `wc' prints a final line containing the
+cumulative counts, with the file name `total'. The counts are printed
+in this order: newlines, words, characters, bytes. Each count is
+printed right-justified in a field with at least one space between
+fields so that the numbers and file names normally line up nicely in
+columns. The width of the count fields varies depending on the inputs,
+so you should not depend on a particular field width. However, as a
+GNU extension, if only one count is printed, it is guaranteed to be
+printed without leading spaces.
+
+ By default, `wc' prints three counts: the newline, words, and byte
+counts. Options can specify that only certain counts be printed.
+Options do not undo others previously given, so
+
+ wc --bytes --words
+
+prints both the byte counts and the word counts.
+
+ With the `--max-line-length' option, `wc' prints the length of the
+longest line per file, and if there is more than one file it prints the
+maximum (not the sum) of those lengths.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-c'
+`--bytes'
+ Print only the byte counts.
+
+`-m'
+`--chars'
+ Print only the character counts.
+
+`-w'
+`--words'
+ Print only the word counts.
+
+`-l'
+`--lines'
+ Print only the newline counts.
+
+`-L'
+`--max-line-length'
+ Print only the maximum line lengths.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: sum invocation, Next: cksum invocation, Prev: wc invocation, Up: Summarizing files
+
+6.2 `sum': Print checksum and block counts
+==========================================
+
+`sum' computes a 16-bit checksum for each given FILE, or standard input
+if none are given or for a FILE of `-'. Synopsis:
+
+ sum [OPTION]... [FILE]...
+
+ `sum' prints the checksum for each FILE followed by the number of
+blocks in the file (rounded up). If more than one FILE is given, file
+names are also printed (by default). (With the `--sysv' option,
+corresponding file names are printed when there is at least one file
+argument.)
+
+ By default, GNU `sum' computes checksums using an algorithm
+compatible with BSD `sum' and prints file sizes in units of 1024-byte
+blocks.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-r'
+ Use the default (BSD compatible) algorithm. This option is
+ included for compatibility with the System V `sum'. Unless `-s'
+ was also given, it has no effect.
+
+`-s'
+`--sysv'
+ Compute checksums using an algorithm compatible with System V
+ `sum''s default, and print file sizes in units of 512-byte blocks.
+
+
+ `sum' is provided for compatibility; the `cksum' program (see next
+section) is preferable in new applications.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: cksum invocation, Next: md5sum invocation, Prev: sum invocation, Up: Summarizing files
+
+6.3 `cksum': Print CRC checksum and byte counts
+===============================================
+
+`cksum' computes a cyclic redundancy check (CRC) checksum for each
+given FILE, or standard input if none are given or for a FILE of `-'.
+Synopsis:
+
+ cksum [OPTION]... [FILE]...
+
+ `cksum' prints the CRC checksum for each file along with the number
+of bytes in the file, and the file name unless no arguments were given.
+
+ `cksum' is typically used to ensure that files transferred by
+unreliable means (e.g., netnews) have not been corrupted, by comparing
+the `cksum' output for the received files with the `cksum' output for
+the original files (typically given in the distribution).
+
+ The CRC algorithm is specified by the POSIX standard. It is not
+compatible with the BSD or System V `sum' algorithms (see the previous
+section); it is more robust.
+
+ The only options are `--help' and `--version'. *Note Common
+options::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: md5sum invocation, Prev: cksum invocation, Up: Summarizing files
+
+6.4 `md5sum': Print or check message-digests
+============================================
+
+`md5sum' computes a 128-bit checksum (or "fingerprint" or
+"message-digest") for each specified FILE. If a FILE is specified as
+`-' or if no files are given `md5sum' computes the checksum for the
+standard input. `md5sum' can also determine whether a file and
+checksum are consistent. Synopses:
+
+ md5sum [OPTION]... [FILE]...
+ md5sum [OPTION]... --check [FILE]
+
+ For each FILE, `md5sum' outputs the MD5 checksum, a flag indicating
+a binary or text input file, and the file name. If FILE is omitted or
+specified as `-', standard input is read.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-b'
+`--binary'
+ Treat all input files as binary. This option has no effect on Unix
+ systems, since they don't distinguish between binary and text
+ files. This option is useful on systems that have different
+ internal and external character representations. On MS-DOS and
+ MS-Windows, this is the default.
+
+`-c'
+`--check'
+ Read file names and checksum information from the single FILE (or
+ from stdin if no FILE was specified) and report whether each named
+ file and the corresponding checksum data are consistent. The
+ input to this mode of `md5sum' is usually the output of a prior,
+ checksum-generating run of `md5sum'. Each valid line of input
+ consists of an MD5 checksum, a binary/text flag, and then a file
+ name. Binary files are marked with `*', text with ` '. For each
+ such line, `md5sum' reads the named file and computes its MD5
+ checksum. Then, if the computed message digest does not match the
+ one on the line with the file name, the file is noted as having
+ failed the test. Otherwise, the file passes the test. By
+ default, for each valid line, one line is written to standard
+ output indicating whether the named file passed the test. After
+ all checks have been performed, if there were any failures, a
+ warning is issued to standard error. Use the `--status' option to
+ inhibit that output. If any listed file cannot be opened or read,
+ if any valid line has an MD5 checksum inconsistent with the
+ associated file, or if no valid line is found, `md5sum' exits with
+ nonzero status. Otherwise, it exits successfully.
+
+`--status'
+ This option is useful only when verifying checksums. When
+ verifying checksums, don't generate the default one-line-per-file
+ diagnostic and don't output the warning summarizing any failures.
+ Failures to open or read a file still evoke individual diagnostics
+ to standard error. If all listed files are readable and are
+ consistent with the associated MD5 checksums, exit successfully.
+ Otherwise exit with a status code indicating there was a failure.
+
+`-t'
+`--text'
+ Treat all input files as text files. This is the reverse of
+ `--binary'.
+
+`-w'
+`--warn'
+ When verifying checksums, warn about improperly formatted MD5
+ checksum lines. This option is useful only if all but a few lines
+ in the checked input are valid.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Operating on sorted files, Next: Operating on fields within a line, Prev: Summarizing files, Up: Top
+
+7 Operating on sorted files
+***************************
+
+These commands work with (or produce) sorted files.
+
+* Menu:
+
+* sort invocation:: Sort text files.
+* uniq invocation:: Uniquify files.
+* comm invocation:: Compare two sorted files line by line.
+* ptx invocation:: Produce a permuted index of file contents.
+* tsort invocation:: Topological sort.
+* tsort background:: Where tsort came from.
+
+
+File: coreutils.info, Node: sort invocation, Next: uniq invocation, Up: Operating on sorted files
+
+7.1 `sort': Sort text files
+===========================
+
+`sort' sorts, merges, or compares all the lines from the given files,
+or standard input if none are given or for a FILE of `-'. By default,
+`sort' writes the results to standard output. Synopsis:
+
+ sort [OPTION]... [FILE]...
+
+ `sort' has three modes of operation: sort (the default), merge, and
+check for sortedness. The following options change the operation mode:
+
+`-c'
+`--check'
+ Check whether the given files are already sorted: if they are not
+ all sorted, print an error message and exit with a status of 1.
+ Otherwise, exit successfully.
+
+`-m'
+`--merge'
+ Merge the given files by sorting them as a group. Each input file
+ must always be individually sorted. It always works to sort
+ instead of merge; merging is provided because it is faster, in the
+ case where it works.
+
+
+ A pair of lines is compared as follows: `sort' compares each pair of
+fields, in the order specified on the command line, according to the
+associated ordering options, until a difference is found or no fields
+are left. If no key fields are specified, `sort' uses a default key of
+the entire line. Finally, as a last resort when all keys compare
+equal, `sort' compares entire lines as if no ordering options other
+than `--reverse' (`-r') were specified. The `--stable' (`-s') option
+disables this "last-resort comparison" so that lines in which all
+fields compare equal are left in their original relative order. The
+`--unique' (`-u') option also disables the last-resort comparison.
+
+ Unless otherwise specified, all comparisons use the character
+collating sequence specified by the `LC_COLLATE' locale.(1)
+
+ GNU `sort' (as specified for all GNU utilities) has no limit on
+input line length or restrictions on bytes allowed within lines. In
+addition, if the final byte of an input file is not a newline, GNU
+`sort' silently supplies one. A line's trailing newline is not part of
+the line for comparison purposes.
+
+ Exit status:
+
+ 0 if no error occurred
+ 1 if invoked with `-c' and the input is not properly sorted
+ 2 if an error occurred
+
+ If the environment variable `TMPDIR' is set, `sort' uses its value
+as the directory for temporary files instead of `/tmp'. The
+`--temporary-directory' (`-T') option in turn overrides the environment
+variable.
+
+ The following options affect the ordering of output lines. They may
+be specified globally or as part of a specific key field. If no key
+fields are specified, global options apply to comparison of entire
+lines; otherwise the global options are inherited by key fields that do
+not specify any special options of their own. In pre-POSIX versions of
+`sort', global options affect only later key fields, so portable shell
+scripts should specify global options first.
+
+`-b'
+`--ignore-leading-blanks'
+ Ignore leading blanks when finding sort keys in each line. The
+ `LC_CTYPE' locale determines character types.
+
+`-d'
+`--dictionary-order'
+ Sort in "phone directory" order: ignore all characters except
+ letters, digits and blanks when sorting. The `LC_CTYPE' locale
+ determines character types.
+
+`-f'
+`--ignore-case'
+ Fold lowercase characters into the equivalent uppercase characters
+ when comparing so that, for example, `b' and `B' sort as equal.
+ The `LC_CTYPE' locale determines character types.
+
+`-g'
+`--general-numeric-sort'
+ Sort numerically, using the standard C function `strtod' to convert
+ a prefix of each line to a double-precision floating point number.
+ This allows floating point numbers to be specified in scientific
+ notation, like `1.0e-34' and `10e100'. The `LC_NUMERIC' locale
+ determines the decimal-point character. Do not report overflow,
+ underflow, or conversion errors. Use the following collating
+ sequence:
+
+ * Lines that do not start with numbers (all considered to be
+ equal).
+
+ * NaNs ("Not a Number" values, in IEEE floating point
+ arithmetic) in a consistent but machine-dependent order.
+
+ * Minus infinity.
+
+ * Finite numbers in ascending numeric order (with -0 and +0
+ equal).
+
+ * Plus infinity.
+
+ Use this option only if there is no alternative; it is much slower
+ than `--numeric-sort' (`-n') and it can lose information when
+ converting to floating point.
+
+`-i'
+`--ignore-nonprinting'
+ Ignore nonprinting characters. The `LC_CTYPE' locale determines
+ character types. This option has no effect if the stronger
+ `--dictionary-order' (`-d') option is also given.
+
+`-M'
+`--month-sort'
+ An initial string, consisting of any amount of blanks, followed by
+ a month name abbreviation, is folded to UPPER case and compared in
+ the order `JAN' < `FEB' < ... < `DEC'. Invalid names compare low
+ to valid names. The `LC_TIME' locale category determines the
+ month spellings.
+
+`-n'
+`--numeric-sort'
+ Sort numerically: the number begins each line; specifically, it
+ consists of optional blanks, an optional `-' sign, and zero or more
+ digits possibly separated by thousands separators, optionally
+ followed by a decimal-point character and zero or more digits. A
+ string of no digits is interpreted as `0'. The `LC_NUMERIC'
+ locale specifies the decimal-point character and thousands
+ separator.
+
+ Numeric sort uses what might be considered an unconventional
+ method to compare strings representing floating point numbers.
+ Rather than first converting each string to the C `double' type
+ and then comparing those values, `sort' aligns the decimal-point
+ characters in the two strings and compares the strings a character
+ at a time. One benefit of using this approach is its speed. In
+ practice this is much more efficient than performing the two
+ corresponding string-to-double (or even string-to-integer)
+ conversions and then comparing doubles. In addition, there is no
+ corresponding loss of precision. Converting each string to
+ `double' before comparison would limit precision to about 16
+ digits on most systems.
+
+ Neither a leading `+' nor exponential notation is recognized. To
+ compare such strings numerically, use the `--general-numeric-sort'
+ (`-g') option.
+
+`-r'
+`--reverse'
+ Reverse the result of comparison, so that lines with greater key
+ values appear earlier in the output instead of later.
+
+
+ Other options are:
+
+`-k POS1[,POS2]'
+`--key=POS1[,POS2]'
+ Specify a sort field that consists of the part of the line between
+ POS1 and POS2 (or the end of the line, if POS2 is omitted),
+ _inclusive_. Fields and character positions are numbered starting
+ with 1. So to sort on the second field, you'd use `--key=2,2'
+ (`-k 2,2'). See below for more examples.
+
+`-o OUTPUT-FILE'
+`--output=OUTPUT-FILE'
+ Write output to OUTPUT-FILE instead of standard output. Normally,
+ `sort' reads all input before opening OUTPUT-FILE, so you can
+ safely sort a file in place by using commands like `sort -o F F'
+ and `cat F | sort -o F'. However, `sort' with `--merge' (`-m')
+ can open the output file before reading all input, so a command
+ like `cat F | sort -m -o F - G' is not safe as `sort' might start
+ writing `F' before `cat' is done reading it.
+
+ On newer systems, `-o' cannot appear after an input file if
+ `POSIXLY_CORRECT' is set, e.g., `sort F -o F'. Portable scripts
+ should specify `-o OUTPUT-FILE' before any input files.
+
+`-s'
+`--stable'
+ Make `sort' stable by disabling its last-resort comparison. This
+ option has no effect if no fields or global ordering options other
+ than `--reverse' (`-R') are specified.
+
+`-S SIZE'
+`--buffer-size=SIZE'
+ Use a main-memory sort buffer of the given SIZE. By default, SIZE
+ is in units of 1024 bytes. Appending `%' causes SIZE to be
+ interpreted as a percentage of physical memory. Appending `K'
+ multiplies SIZE by 1024 (the default), `M' by 1,048,576, `G' by
+ 1,073,741,824, and so on for `T', `P', `E', `Z', and `Y'.
+ Appending `b' causes SIZE to be interpreted as a byte count, with
+ no multiplication.
+
+ This option can improve the performance of `sort' by causing it to
+ start with a larger or smaller sort buffer than the default.
+ However, this option affects only the initial buffer size. The
+ buffer grows beyond SIZE if `sort' encounters input lines larger
+ than SIZE.
+
+`-t SEPARATOR'
+`--field-separator=SEPARATOR'
+ Use character SEPARATOR as the field separator when finding the
+ sort keys in each line. By default, fields are separated by the
+ empty string between a non-blank character and a blank character.
+ That is, given the input line ` foo bar', `sort' breaks it into
+ fields ` foo' and ` bar'. The field separator is not considered
+ to be part of either the field preceding or the field following,
+ so with `sort -t " "' the same input line has three fields: an
+ empty field, `foo', and `bar'. However, fields that extend to the
+ end of the line, as `-k 2', or fields consisting of a range, as
+ `-k 2,3', retain the field separators present between the
+ endpoints of the range.
+
+ To specify a zero byte (ASCII NUL (Null) character) as the field
+ separator, use the two-character string `\0', e.g., `sort -t '\0''.
+
+`-T TEMPDIR'
+`--temporary-directory=TEMPDIR'
+ Use directory TEMPDIR to store temporary files, overriding the
+ `TMPDIR' environment variable. If this option is given more than
+ once, temporary files are stored in all the directories given. If
+ you have a large sort or merge that is I/O-bound, you can often
+ improve performance by using this option to specify directories on
+ different disks and controllers.
+
+`-u'
+`--unique'
+ Normally, output only the first of a sequence of lines that compare
+ equal. For the `--check' (`-c') option, check that no pair of
+ consecutive lines compares equal.
+
+ This option also disables the default last-resort comparison.
+
+ The commands `sort -u' and `sort | uniq' are equivalent, but this
+ equivalence does not extend to arbitrary `sort' options. For
+ example, `sort -n -u' inspects only the value of the initial
+ numeric string when checking for uniqueness, whereas `sort -n |
+ uniq' inspects the entire line. *Note uniq invocation::.
+
+`-z'
+`--zero-terminated'
+ Treat the input as a set of lines, each terminated by a zero byte
+ (ASCII NUL (Null) character) instead of an ASCII LF (Line Feed).
+ This option can be useful in conjunction with `perl -0' or `find
+ -print0' and `xargs -0' which do the same in order to reliably
+ handle arbitrary file names (even those containing blanks or other
+ special characters).
+
+
+ Historical (BSD and System V) implementations of `sort' have
+differed in their interpretation of some options, particularly `-b',
+`-f', and `-n'. GNU sort follows the POSIX behavior, which is usually
+(but not always!) like the System V behavior. According to POSIX, `-n'
+no longer implies `-b'. For consistency, `-M' has been changed in the
+same way. This may affect the meaning of character positions in field
+specifications in obscure cases. The only fix is to add an explicit
+`-b'.
+
+ A position in a sort field specified with the `-k' option has the
+form `F.C', where F is the number of the field to use and C is the
+number of the first character from the beginning of the field. In a
+start position, an omitted `.C' stands for the field's first character.
+In an end position, an omitted or zero `.C' stands for the field's
+last character. If the start field falls after the end of the line or
+after the end field, the field is empty. If the `-b' option was
+specified, the `.C' part of a field specification is counted from the
+first nonblank character of the field.
+
+ A sort key position may also have any of the option letters `Mbdfinr'
+appended to it, in which case the global ordering options are not used
+for that particular field. The `-b' option may be independently
+attached to either or both of the start and end positions of a field
+specification, and if it is inherited from the global options it will
+be attached to both. If input lines can contain leading or adjacent
+blanks and `-t' is not used, then `-k' is typically combined with `-b',
+`-g', `-M', or `-n'; otherwise the varying numbers of leading blanks in
+fields can cause confusing results.
+
+ Keys can span multiple fields.
+
+ On older systems, `sort' supports an obsolete origin-zero syntax
+`+POS1 [-POS2]' for specifying sort keys. POSIX 1003.1-2001 (*note
+Standards conformance::) does not allow this; use `-k' instead.
+
+ Here are some examples to illustrate various combinations of options.
+
+ * Sort in descending (reverse) numeric order.
+
+ sort -n -r
+
+ * Sort alphabetically, omitting the first and second fields and the
+ blanks at the start of the third field. This uses a single key
+ composed of the characters beginning at the start of the first
+ nonblank character in field three and extending to the end of each
+ line.
+
+ sort -k 3b
+
+ * Sort numerically on the second field and resolve ties by sorting
+ alphabetically on the third and fourth characters of field five.
+ Use `:' as the field delimiter.
+
+ sort -t : -k 2,2n -k 5.3,5.4
+
+ Note that if you had written `-k 2n' instead of `-k 2,2n' `sort'
+ would have used all characters beginning in the second field and
+ extending to the end of the line as the primary _numeric_ key.
+ For the large majority of applications, treating keys spanning
+ more than one field as numeric will not do what you expect.
+
+ Also note that the `n' modifier was applied to the field-end
+ specifier for the first key. It would have been equivalent to
+ specify `-k 2n,2' or `-k 2n,2n'. All modifiers except `b' apply
+ to the associated _field_, regardless of whether the modifier
+ character is attached to the field-start and/or the field-end part
+ of the key specifier.
+
+ * Sort the password file on the fifth field and ignore any leading
+ blanks. Sort lines with equal values in field five on the numeric
+ user ID in field three. Fields are separated by `:'.
+
+ sort -t : -k 5b,5 -k 3,3n /etc/passwd
+ sort -t : -n -k 5b,5 -k 3,3 /etc/passwd
+ sort -t : -b -k 5,5 -k 3,3n /etc/passwd
+
+ These three commands have equivalent effect. The first specifies
+ that the first key's start position ignores leading blanks and the
+ second key is sorted numerically. The other two commands rely on
+ global options being inherited by sort keys that lack modifiers.
+ The inheritance works in this case because `-k 5b,5b' and `-k
+ 5b,5' are equivalent, as the location of a field-end lacking a `.C'
+ character position is not affected by whether initial blanks are
+ skipped.
+
+ * Sort a set of log files, primarily by IPv4 address and secondarily
+ by time stamp. If two lines' primary and secondary keys are
+ identical, output the lines in the same order that they were
+ input. The log files contain lines that look like this:
+
+ 4.150.156.3 - - [01/Apr/2004:06:31:51 +0000] message 1
+ 211.24.3.231 - - [24/Apr/2004:20:17:39 +0000] message 2
+
+ Fields are separated by exactly one space. Sort IPv4 addresses
+ lexicographically, e.g., 212.61.52.2 sorts before 212.129.233.201
+ because 61 is less than 129.
+
+ sort -s -t ' ' -k 4.9n -k 4.5M -k 4.2n -k 4.14,4.21 file*.log |
+ sort -s -t '.' -k 1,1n -k 2,2n -k 3,3n -k 4,4n
+
+ This example cannot be done with a single `sort' invocation, since
+ IPv4 address components are separated by `.' while dates come just
+ after a space. So it is broken down into two invocations of
+ `sort': the first sorts by time stamp and the second by IPv4
+ address. The time stamp is sorted by year, then month, then day,
+ and finally by hour-minute-second field, using `-k' to isolate each
+ field. Except for hour-minute-second there's no need to specify
+ the end of each key field, since the `n' and `M' modifiers sort
+ based on leading prefixes that cannot cross field boundaries. The
+ IPv4 addresses are sorted lexicographically. The second sort uses
+ `-s' so that ties in the primary key are broken by the secondary
+ key; the first sort uses `-s' so that the combination of the two
+ sorts is stable.
+
+ * Generate a tags file in case-insensitive sorted order.
+
+ find src -type f -print0 | sort -z -f | xargs -0 etags --append
+
+ The use of `-print0', `-z', and `-0' in this case means that file
+ names that contain blanks or other special characters are not
+ broken up by the sort operation.
+
+
+ ---------- Footnotes ----------
+
+ (1) If you use a non-POSIX locale (e.g., by setting `LC_ALL' to
+`en_US'), then `sort' may produce output that is sorted differently
+than you're accustomed to. In that case, set the `LC_ALL' environment
+variable to `C'. Note that setting only `LC_COLLATE' has two problems.
+First, it is ineffective if `LC_ALL' is also set. Second, it has
+undefined behavior if `LC_CTYPE' (or `LANG', if `LC_CTYPE' is unset) is
+set to an incompatible value. For example, you get undefined behavior
+if `LC_CTYPE' is `ja_JP.PCK' but `LC_COLLATE' is `en_US.UTF-8'.
+
+
+File: coreutils.info, Node: uniq invocation, Next: comm invocation, Prev: sort invocation, Up: Operating on sorted files
+
+7.2 `uniq': Uniquify files
+==========================
+
+`uniq' writes the unique lines in the given `input', or standard input
+if nothing is given or for an INPUT name of `-'. Synopsis:
+
+ uniq [OPTION]... [INPUT [OUTPUT]]
+
+ By default, `uniq' prints its input lines, except that it discards
+all but the first of adjacent repeated lines, so that no output lines
+are repeated. Optionally, it can instead discard lines that are not
+repeated, or all repeated lines.
+
+ The input need not be sorted, but repeated input lines are detected
+only if they are adjacent. If you want to discard non-adjacent
+duplicate lines, perhaps you want to use `sort -u'. *Note sort
+invocation::.
+
+ Comparisons use the character collating sequence specified by the
+`LC_COLLATE' locale category.
+
+ If no OUTPUT file is specified, `uniq' writes to standard output.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-f N'
+`--skip-fields=N'
+ Skip N fields on each line before checking for uniqueness. Use a
+ null string for comparison if a line has fewer than N fields.
+ Fields are sequences of non-space non-tab characters that are
+ separated from each other by at least one space or tab.
+
+ On older systems, `uniq' supports an obsolete option `-N'. POSIX
+ 1003.1-2001 (*note Standards conformance::) does not allow this;
+ use `-f N' instead.
+
+`-s N'
+`--skip-chars=N'
+ Skip N characters before checking for uniqueness. Use a null
+ string for comparison if a line has fewer than N characters. If
+ you use both the field and character skipping options, fields are
+ skipped over first.
+
+ On older systems, `uniq' supports an obsolete option `+N'. POSIX
+ 1003.1-2001 (*note Standards conformance::) does not allow this;
+ use `-s N' instead.
+
+`-c'
+`--count'
+ Print the number of times each line occurred along with the line.
+
+`-i'
+`--ignore-case'
+ Ignore differences in case when comparing lines.
+
+`-d'
+`--repeated'
+ Discard lines that are not repeated. When used by itself, this
+ option causes `uniq' to print the first copy of each repeated line,
+ and nothing else.
+
+`-D'
+`--all-repeated[=DELIMIT-METHOD]'
+ Do not discard the second and subsequent repeated input lines, but
+ discard lines that are not repeated. This option is useful mainly
+ in conjunction with other options e.g., to ignore case or to
+ compare only selected fields. The optional DELIMIT-METHOD tells
+ how to delimit groups of repeated lines, and must be one of the
+ following:
+
+ `none'
+ Do not delimit groups of repeated lines. This is equivalent
+ to `--all-repeated' (`-D').
+
+ `prepend'
+ Output a newline before each group of repeated lines.
+
+ `separate'
+ Separate groups of repeated lines with a single newline.
+ This is the same as using `prepend', except that there is no
+ newline before the first group, and hence may be better
+ suited for output direct to users.
+
+ Note that when groups are delimited and the input stream contains
+ two or more consecutive blank lines, then the output is ambiguous.
+ To avoid that, filter the input through `tr -s '\n'' to replace
+ each sequence of consecutive newlines with a single newline.
+
+ This is a GNU extension.
+
+`-u'
+`--unique'
+ Discard the first repeated line. When used by itself, this option
+ causes `uniq' to print unique lines, and nothing else.
+
+`-w N'
+`--check-chars=N'
+ Compare at most N characters on each line (after skipping any
+ specified fields and characters). By default the entire rest of
+ the lines are compared.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: comm invocation, Next: ptx invocation, Prev: uniq invocation, Up: Operating on sorted files
+
+7.3 `comm': Compare two sorted files line by line
+=================================================
+
+`comm' writes to standard output lines that are common, and lines that
+are unique, to two input files; a file name of `-' means standard
+input. Synopsis:
+
+ comm [OPTION]... FILE1 FILE2
+
+ Before `comm' can be used, the input files must be sorted using the
+collating sequence specified by the `LC_COLLATE' locale. If an input
+file ends in a non-newline character, a newline is silently appended.
+The `sort' command with no options always outputs a file that is
+suitable input to `comm'.
+
+ With no options, `comm' produces three-column output. Column one
+contains lines unique to FILE1, column two contains lines unique to
+FILE2, and column three contains lines common to both files. Columns
+are separated by a single TAB character.
+
+ The options `-1', `-2', and `-3' suppress printing of the
+corresponding columns. Also see *Note Common options::.
+
+ Unlike some other comparison utilities, `comm' has an exit status
+that does not depend on the result of the comparison. Upon normal
+completion `comm' produces an exit code of zero. If there is an error
+it exits with nonzero status.
+
+
+File: coreutils.info, Node: tsort invocation, Next: tsort background, Prev: ptx invocation, Up: Operating on sorted files
+
+7.4 `tsort': Topological sort
+=============================
+
+`tsort' performs a topological sort on the given FILE, or standard
+input if no input file is given or for a FILE of `-'. For more details
+and some history, see *Note tsort background::. Synopsis:
+
+ tsort [OPTION] [FILE]
+
+ `tsort' reads its input as pairs of strings, separated by blanks,
+indicating a partial ordering. The output is a total ordering that
+corresponds to the given partial ordering.
+
+ For example
+
+ tsort <<EOF
+ a b c
+ d
+ e f
+ b c d e
+ EOF
+
+will produce the output
+
+ a
+ b
+ c
+ d
+ e
+ f
+
+ Consider a more realistic example. You have a large set of
+functions all in one file, and they may all be declared static except
+one. Currently that one (say `main') is the first function defined in
+the file, and the ones it calls directly follow it, followed by those
+they call, etc. Let's say that you are determined to take advantage of
+prototypes, so you have to choose between declaring all of those
+functions (which means duplicating a lot of information from the
+definitions) and rearranging the functions so that as many as possible
+are defined before they are used. One way to automate the latter
+process is to get a list for each function of the functions it calls
+directly. Many programs can generate such lists. They describe a call
+graph. Consider the following list, in which a given line indicates
+that the function on the left calls the one on the right directly.
+
+ main parse_options
+ main tail_file
+ main tail_forever
+ tail_file pretty_name
+ tail_file write_header
+ tail_file tail
+ tail_forever recheck
+ tail_forever pretty_name
+ tail_forever write_header
+ tail_forever dump_remainder
+ tail tail_lines
+ tail tail_bytes
+ tail_lines start_lines
+ tail_lines dump_remainder
+ tail_lines file_lines
+ tail_lines pipe_lines
+ tail_bytes xlseek
+ tail_bytes start_bytes
+ tail_bytes dump_remainder
+ tail_bytes pipe_bytes
+ file_lines dump_remainder
+ recheck pretty_name
+
+ then you can use `tsort' to produce an ordering of those functions
+that satisfies your requirement.
+
+ example$ tsort call-graph | tac
+ dump_remainder
+ start_lines
+ file_lines
+ pipe_lines
+ xlseek
+ start_bytes
+ pipe_bytes
+ tail_lines
+ tail_bytes
+ pretty_name
+ write_header
+ tail
+ recheck
+ parse_options
+ tail_file
+ tail_forever
+ main
+
+ `tsort' detects any cycles in the input and writes the first cycle
+encountered to standard error.
+
+ Note that for a given partial ordering, generally there is no unique
+total ordering. In the context of the call graph above, the function
+`parse_options' may be placed anywhere in the list as long as it
+precedes `main'.
+
+ The only options are `--help' and `--version'. *Note Common
+options::.
+
+
+File: coreutils.info, Node: tsort background, Prev: tsort invocation, Up: Operating on sorted files
+
+7.5 `tsort': Background
+=======================
+
+`tsort' exists because very early versions of the Unix linker processed
+an archive file exactly once, and in order. As `ld' read each object
+in the archive, it decided whether it was needed in the program based on
+whether it defined any symbols which were undefined at that point in
+the link.
+
+ This meant that dependencies within the archive had to be handled
+specially. For example, `scanf' probably calls `read'. That means
+that in a single pass through an archive, it was important for `scanf.o'
+to appear before read.o, because otherwise a program which calls
+`scanf' but not `read' might end up with an unexpected unresolved
+reference to `read'.
+
+ The way to address this problem was to first generate a set of
+dependencies of one object file on another. This was done by a shell
+script called `lorder'. The GNU tools don't provide a version of
+lorder, as far as I know, but you can still find it in BSD
+distributions.
+
+ Then you ran `tsort' over the `lorder' output, and you used the
+resulting sort to define the order in which you added objects to the
+archive.
+
+ This whole procedure has been obsolete since about 1980, because
+Unix archives now contain a symbol table (traditionally built by
+`ranlib', now generally built by `ar' itself), and the Unix linker uses
+the symbol table to effectively make multiple passes over an archive
+file.
+
+ Anyhow, that's where tsort came from. To solve an old problem with
+the way the linker handled archive files, which has since been solved
+in different ways.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: ptx invocation, Next: tsort invocation, Prev: comm invocation, Up: Operating on sorted files
+
+7.6 `ptx': Produce permuted indexes
+===================================
+
+`ptx' reads a text file and essentially produces a permuted index, with
+each keyword in its context. The calling sketch is either one of:
+
+ ptx [OPTION ...] [FILE ...]
+ ptx -G [OPTION ...] [INPUT [OUTPUT]]
+
+ The `-G' (or its equivalent: `--traditional') option disables all
+GNU extensions and reverts to traditional mode, thus introducing some
+limitations and changing several of the program's default option values.
+When `-G' is not specified, GNU extensions are always enabled. GNU
+extensions to `ptx' are documented wherever appropriate in this
+document. For the full list, see *Note Compatibility in ptx::.
+
+ Individual options are explained in the following sections.
+
+ When GNU extensions are enabled, there may be zero, one or several
+FILEs after the options. If there is no FILE, the program reads the
+standard input. If there is one or several FILEs, they give the name
+of input files which are all read in turn, as if all the input files
+were concatenated. However, there is a full contextual break between
+each file and, when automatic referencing is requested, file names and
+line numbers refer to individual text input files. In all cases, the
+program outputs the permuted index to the standard output.
+
+ When GNU extensions are _not_ enabled, that is, when the program
+operates in traditional mode, there may be zero, one or two parameters
+besides the options. If there are no parameters, the program reads the
+standard input and outputs the permuted index to the standard output.
+If there is only one parameter, it names the text INPUT to be read
+instead of the standard input. If two parameters are given, they give
+respectively the name of the INPUT file to read and the name of the
+OUTPUT file to produce. _Be very careful_ to note that, in this case,
+the contents of file given by the second parameter is destroyed. This
+behavior is dictated by System V `ptx' compatibility; GNU Standards
+normally discourage output parameters not introduced by an option.
+
+ Note that for _any_ file named as the value of an option or as an
+input text file, a single dash `-' may be used, in which case standard
+input is assumed. However, it would not make sense to use this
+convention more than once per program invocation.
+
+* Menu:
+
+* General options in ptx:: Options which affect general program behavior.
+* Charset selection in ptx:: Underlying character set considerations.
+* Input processing in ptx:: Input fields, contexts, and keyword selection.
+* Output formatting in ptx:: Types of output format, and sizing the fields.
+* Compatibility in ptx::
+
+
+File: coreutils.info, Node: General options in ptx, Next: Charset selection in ptx, Up: ptx invocation
+
+7.6.1 General options
+---------------------
+
+`-C'
+`--copyright'
+ Print a short note about the copyright and copying conditions, then
+ exit without further processing.
+
+`-G'
+`--traditional'
+ As already explained, this option disables all GNU extensions to
+ `ptx' and switches to traditional mode.
+
+`--help'
+ Print a short help on standard output, then exit without further
+ processing.
+
+`--version'
+ Print the program version on standard output, then exit without
+ further processing.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Charset selection in ptx, Next: Input processing in ptx, Prev: General options in ptx, Up: ptx invocation
+
+7.6.2 Charset selection
+-----------------------
+
+As it is set up now, the program assumes that the input file is coded
+using 8-bit ISO 8859-1 code, also known as Latin-1 character set,
+_unless_ it is compiled for MS-DOS, in which case it uses the character
+set of the IBM-PC. (GNU `ptx' is not known to work on smaller MS-DOS
+machines anymore.) Compared to 7-bit ASCII, the set of characters
+which are letters is different; this alters the behavior of regular
+expression matching. Thus, the default regular expression for a
+keyword allows foreign or diacriticized letters. Keyword sorting,
+however, is still crude; it obeys the underlying character set ordering
+quite blindly.
+
+`-f'
+`--ignore-case'
+ Fold lower case letters to upper case for sorting.
+
+
+
+File: coreutils.info, Node: Input processing in ptx, Next: Output formatting in ptx, Prev: Charset selection in ptx, Up: ptx invocation
+
+7.6.3 Word selection and input processing
+-----------------------------------------
+
+`-b FILE'
+
+`--break-file=FILE'
+ This option provides an alternative (to `-W') method of describing
+ which characters make up words. It introduces the name of a file
+ which contains a list of characters which can_not_ be part of one
+ word; this file is called the "Break file". Any character which
+ is not part of the Break file is a word constituent. If both
+ options `-b' and `-W' are specified, then `-W' has precedence and
+ `-b' is ignored.
+
+ When GNU extensions are enabled, the only way to avoid newline as a
+ break character is to write all the break characters in the file
+ with no newline at all, not even at the end of the file. When GNU
+ extensions are disabled, spaces, tabs and newlines are always
+ considered as break characters even if not included in the Break
+ file.
+
+`-i FILE'
+`--ignore-file=FILE'
+ The file associated with this option contains a list of words
+ which will never be taken as keywords in concordance output. It
+ is called the "Ignore file". The file contains exactly one word
+ in each line; the end of line separation of words is not subject
+ to the value of the `-S' option.
+
+ There is a default Ignore file used by `ptx' when this option is
+ not specified, usually found in `/usr/local/lib/eign' if this has
+ not been changed at installation time. If you want to deactivate
+ the default Ignore file, specify `/dev/null' instead.
+
+`-o FILE'
+`--only-file=FILE'
+ The file associated with this option contains a list of words
+ which will be retained in concordance output; any word not
+ mentioned in this file is ignored. The file is called the "Only
+ file". The file contains exactly one word in each line; the end
+ of line separation of words is not subject to the value of the
+ `-S' option.
+
+ There is no default for the Only file. When both an Only file and
+ an Ignore file are specified, a word is considered a keyword only
+ if it is listed in the Only file and not in the Ignore file.
+
+`-r'
+`--references'
+ On each input line, the leading sequence of non-white space
+ characters will be taken to be a reference that has the purpose of
+ identifying this input line in the resulting permuted index. For
+ more information about reference production, see *Note Output
+ formatting in ptx::. Using this option changes the default value
+ for option `-S'.
+
+ Using this option, the program does not try very hard to remove
+ references from contexts in output, but it succeeds in doing so
+ _when_ the context ends exactly at the newline. If option `-r' is
+ used with `-S' default value, or when GNU extensions are disabled,
+ this condition is always met and references are completely
+ excluded from the output contexts.
+
+`-S REGEXP'
+`--sentence-regexp=REGEXP'
+ This option selects which regular expression will describe the end
+ of a line or the end of a sentence. In fact, this regular
+ expression is not the only distinction between end of lines or end
+ of sentences, and input line boundaries have no special
+ significance outside this option. By default, when GNU extensions
+ are enabled and if `-r' option is not used, end of sentences are
+ used. In this case, this REGEX is imported from GNU Emacs:
+
+ [.?!][]\"')}]*\\($\\|\t\\| \\)[ \t\n]*
+
+ Whenever GNU extensions are disabled or if `-r' option is used, end
+ of lines are used; in this case, the default REGEXP is just:
+
+ \n
+
+ Using an empty REGEXP is equivalent to completely disabling end of
+ line or end of sentence recognition. In this case, the whole file
+ is considered to be a single big line or sentence. The user might
+ want to disallow all truncation flag generation as well, through
+ option `-F ""'. *Note Syntax of Regular Expressions:
+ (emacs)Regexps.
+
+ When the keywords happen to be near the beginning of the input
+ line or sentence, this often creates an unused area at the
+ beginning of the output context line; when the keywords happen to
+ be near the end of the input line or sentence, this often creates
+ an unused area at the end of the output context line. The program
+ tries to fill those unused areas by wrapping around context in
+ them; the tail of the input line or sentence is used to fill the
+ unused area on the left of the output line; the head of the input
+ line or sentence is used to fill the unused area on the right of
+ the output line.
+
+ As a matter of convenience to the user, many usual backslashed
+ escape sequences from the C language are recognized and converted
+ to the corresponding characters by `ptx' itself.
+
+`-W REGEXP'
+`--word-regexp=REGEXP'
+ This option selects which regular expression will describe each
+ keyword. By default, if GNU extensions are enabled, a word is a
+ sequence of letters; the REGEXP used is `\w+'. When GNU
+ extensions are disabled, a word is by default anything which ends
+ with a space, a tab or a newline; the REGEXP used is `[^ \t\n]+'.
+
+ An empty REGEXP is equivalent to not using this option. *Note
+ Syntax of Regular Expressions: (emacs)Regexps.
+
+ As a matter of convenience to the user, many usual backslashed
+ escape sequences, as found in the C language, are recognized and
+ converted to the corresponding characters by `ptx' itself.
+
+
+
+File: coreutils.info, Node: Output formatting in ptx, Next: Compatibility in ptx, Prev: Input processing in ptx, Up: ptx invocation
+
+7.6.4 Output formatting
+-----------------------
+
+Output format is mainly controlled by the `-O' and `-T' options
+described in the table below. When neither `-O' nor `-T' are selected,
+and if GNU extensions are enabled, the program chooses an output format
+suitable for a dumb terminal. Each keyword occurrence is output to the
+center of one line, surrounded by its left and right contexts. Each
+field is properly justified, so the concordance output can be readily
+observed. As a special feature, if automatic references are selected
+by option `-A' and are output before the left context, that is, if
+option `-R' is _not_ selected, then a colon is added after the
+reference; this nicely interfaces with GNU Emacs `next-error'
+processing. In this default output format, each white space character,
+like newline and tab, is merely changed to exactly one space, with no
+special attempt to compress consecutive spaces. This might change in
+the future. Except for those white space characters, every other
+character of the underlying set of 256 characters is transmitted
+verbatim.
+
+ Output format is further controlled by the following options.
+
+`-g NUMBER'
+`--gap-size=NUMBER'
+ Select the size of the minimum white space gap between the fields
+ on the output line.
+
+`-w NUMBER'
+`--width=NUMBER'
+ Select the maximum output width of each final line. If references
+ are used, they are included or excluded from the maximum output
+ width depending on the value of option `-R'. If this option is not
+ selected, that is, when references are output before the left
+ context, the maximum output width takes into account the maximum
+ length of all references. If this option is selected, that is,
+ when references are output after the right context, the maximum
+ output width does not take into account the space taken by
+ references, nor the gap that precedes them.
+
+`-A'
+`--auto-reference'
+ Select automatic references. Each input line will have an
+ automatic reference made up of the file name and the line ordinal,
+ with a single colon between them. However, the file name will be
+ empty when standard input is being read. If both `-A' and `-r'
+ are selected, then the input reference is still read and skipped,
+ but the automatic reference is used at output time, overriding the
+ input reference.
+
+`-R'
+`--right-side-refs'
+ In the default output format, when option `-R' is not used, any
+ references produced by the effect of options `-r' or `-A' are
+ placed to the far right of output lines, after the right context.
+ With default output format, when the `-R' option is specified,
+ references are rather placed at the beginning of each output line,
+ before the left context. For any other output format, option `-R'
+ is ignored, with one exception: with `-R' the width of references
+ is _not_ taken into account in total output width given by `-w'.
+
+ This option is automatically selected whenever GNU extensions are
+ disabled.
+
+`-F STRING'
+`--flac-truncation=STRING'
+ This option will request that any truncation in the output be
+ reported using the string STRING. Most output fields
+ theoretically extend towards the beginning or the end of the
+ current line, or current sentence, as selected with option `-S'.
+ But there is a maximum allowed output line width, changeable
+ through option `-w', which is further divided into space for
+ various output fields. When a field has to be truncated because
+ it cannot extend beyond the beginning or the end of the current
+ line to fit in, then a truncation occurs. By default, the string
+ used is a single slash, as in `-F /'.
+
+ STRING may have more than one character, as in `-F ...'. Also, in
+ the particular case when STRING is empty (`-F ""'), truncation
+ flagging is disabled, and no truncation marks are appended in this
+ case.
+
+ As a matter of convenience to the user, many usual backslashed
+ escape sequences, as found in the C language, are recognized and
+ converted to the corresponding characters by `ptx' itself.
+
+`-M STRING'
+`--macro-name=STRING'
+ Select another STRING to be used instead of `xx', while generating
+ output suitable for `nroff', `troff' or TeX.
+
+`-O'
+`--format=roff'
+ Choose an output format suitable for `nroff' or `troff'
+ processing. Each output line will look like:
+
+ .xx "TAIL" "BEFORE" "KEYWORD_AND_AFTER" "HEAD" "REF"
+
+ so it will be possible to write a `.xx' roff macro to take care of
+ the output typesetting. This is the default output format when GNU
+ extensions are disabled. Option `-M' can be used to change `xx'
+ to another macro name.
+
+ In this output format, each non-graphical character, like newline
+ and tab, is merely changed to exactly one space, with no special
+ attempt to compress consecutive spaces. Each quote character: `"'
+ is doubled so it will be correctly processed by `nroff' or `troff'.
+
+`-T'
+`--format=tex'
+ Choose an output format suitable for TeX processing. Each output
+ line will look like:
+
+ \xx {TAIL}{BEFORE}{KEYWORD}{AFTER}{HEAD}{REF}
+
+ so it will be possible to write a `\xx' definition to take care of
+ the output typesetting. Note that when references are not being
+ produced, that is, neither option `-A' nor option `-r' is
+ selected, the last parameter of each `\xx' call is inhibited.
+ Option `-M' can be used to change `xx' to another macro name.
+
+ In this output format, some special characters, like `$', `%',
+ `&', `#' and `_' are automatically protected with a backslash.
+ Curly brackets `{', `}' are protected with a backslash and a pair
+ of dollar signs (to force mathematical mode). The backslash
+ itself produces the sequence `\backslash{}'. Circumflex and tilde
+ diacritical marks produce the sequence `^\{ }' and `~\{ }'
+ respectively. Other diacriticized characters of the underlying
+ character set produce an appropriate TeX sequence as far as
+ possible. The other non-graphical characters, like newline and
+ tab, and all other characters which are not part of ASCII, are
+ merely changed to exactly one space, with no special attempt to
+ compress consecutive spaces. Let me know how to improve this
+ special character processing for TeX.
+
+
+
+File: coreutils.info, Node: Compatibility in ptx, Prev: Output formatting in ptx, Up: ptx invocation
+
+7.6.5 The GNU extensions to `ptx'
+---------------------------------
+
+This version of `ptx' contains a few features which do not exist in
+System V `ptx'. These extra features are suppressed by using the `-G'
+command line option, unless overridden by other command line options.
+Some GNU extensions cannot be recovered by overriding, so the simple
+rule is to avoid `-G' if you care about GNU extensions. Here are the
+differences between this program and System V `ptx'.
+
+ * This program can read many input files at once, it always writes
+ the resulting concordance on standard output. On the other hand,
+ System V `ptx' reads only one file and sends the result to
+ standard output or, if a second FILE parameter is given on the
+ command, to that FILE.
+
+ Having output parameters not introduced by options is a dangerous
+ practice which GNU avoids as far as possible. So, for using `ptx'
+ portably between GNU and System V, you should always use it with a
+ single input file, and always expect the result on standard
+ output. You might also want to automatically configure in a `-G'
+ option to `ptx' calls in products using `ptx', if the configurator
+ finds that the installed `ptx' accepts `-G'.
+
+ * The only options available in System V `ptx' are options `-b',
+ `-f', `-g', `-i', `-o', `-r', `-t' and `-w'. All other options
+ are GNU extensions and are not repeated in this enumeration.
+ Moreover, some options have a slightly different meaning when GNU
+ extensions are enabled, as explained below.
+
+ * By default, concordance output is not formatted for `troff' or
+ `nroff'. It is rather formatted for a dumb terminal. `troff' or
+ `nroff' output may still be selected through option `-O'.
+
+ * Unless `-R' option is used, the maximum reference width is
+ subtracted from the total output line width. With GNU extensions
+ disabled, width of references is not taken into account in the
+ output line width computations.
+
+ * All 256 characters, even NULs, are always read and processed from
+ input file with no adverse effect, even if GNU extensions are
+ disabled. However, System V `ptx' does not accept 8-bit
+ characters, a few control characters are rejected, and the tilde
+ `~' is also rejected.
+
+ * Input line length is only limited by available memory, even if GNU
+ extensions are disabled. However, System V `ptx' processes only
+ the first 200 characters in each line.
+
+ * The break (non-word) characters default to be every character
+ except all letters of the underlying character set, diacriticized
+ or not. When GNU extensions are disabled, the break characters
+ default to space, tab and newline only.
+
+ * The program makes better use of output line width. If GNU
+ extensions are disabled, the program rather tries to imitate
+ System V `ptx', but still, there are some slight disposition
+ glitches this program does not completely reproduce.
+
+ * The user can specify both an Ignore file and an Only file. This
+ is not allowed with System V `ptx'.
+
+
+
+File: coreutils.info, Node: Operating on fields within a line, Next: Operating on characters, Prev: Operating on sorted files, Up: Top
+
+8 Operating on fields within a line
+***********************************
+
+* Menu:
+
+* cut invocation:: Print selected parts of lines.
+* paste invocation:: Merge lines of files.
+* join invocation:: Join lines on a common field.
+
+
+File: coreutils.info, Node: cut invocation, Next: paste invocation, Up: Operating on fields within a line
+
+8.1 `cut': Print selected parts of lines
+========================================
+
+`cut' writes to standard output selected parts of each line of each
+input file, or standard input if no files are given or for a file name
+of `-'. Synopsis:
+
+ cut [OPTION]... [FILE]...
+
+ In the table which follows, the BYTE-LIST, CHARACTER-LIST, and
+FIELD-LIST are one or more numbers or ranges (two numbers separated by
+a dash) separated by commas. Bytes, characters, and fields are
+numbered starting at 1. Incomplete ranges may be given: `-M' means
+`1-M'; `N-' means `N' through end of line or last field. The list
+elements can be repeated, can overlap, and can be specified in any
+order; but the selected input is written in the same order that it is
+read, and is written exactly once.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-b BYTE-LIST'
+`--bytes=BYTE-LIST'
+ Select for printing only the bytes in positions listed in
+ BYTE-LIST. Tabs and backspaces are treated like any other
+ character; they take up 1 byte. If an output delimiter is
+ specified, (see the description of `--output-delimiter'), then
+ output that string between ranges of selected bytes.
+
+`-c CHARACTER-LIST'
+`--characters=CHARACTER-LIST'
+ Select for printing only the characters in positions listed in
+ CHARACTER-LIST. The same as `-b' for now, but
+ internationalization will change that. Tabs and backspaces are
+ treated like any other character; they take up 1 character. If an
+ output delimiter is specified, (see the description of
+ `--output-delimiter'), then output that string between ranges of
+ selected bytes.
+
+`-f FIELD-LIST'
+`--fields=FIELD-LIST'
+ Select for printing only the fields listed in FIELD-LIST. Fields
+ are separated by a TAB character by default. Also print any line
+ that contains no delimiter character, unless the
+ `--only-delimited' (`-s') option is specified
+
+`-d INPUT_DELIM_BYTE'
+`--delimiter=INPUT_DELIM_BYTE'
+ For `-f', fields are separated in the input by the first character
+ in INPUT_DELIM_BYTE (default is TAB).
+
+`-n'
+ Do not split multi-byte characters (no-op for now).
+
+`-s'
+`--only-delimited'
+ For `-f', do not print lines that do not contain the field
+ separator character. Normally, any line without a field separator
+ is printed verbatim.
+
+`--output-delimiter=OUTPUT_DELIM_STRING'
+ With `-f', output fields are separated by OUTPUT_DELIM_STRING.
+ The default with `-f' is to use the input delimiter. When using
+ `-b' or `-c' to select ranges of byte or character offsets (as
+ opposed to ranges of fields), output OUTPUT_DELIM_STRING between
+ non-overlapping ranges of selected bytes.
+
+`--complement'
+ This option is a GNU extension. Select for printing the
+ complement of the bytes, characters or fields selected with the
+ `-b', `-c' or `-f' options. In other words, do _not_ print the
+ bytes, characters or fields specified via those options. This
+ option is useful when you have many fields and want to print all
+ but a few of them.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: paste invocation, Next: join invocation, Prev: cut invocation, Up: Operating on fields within a line
+
+8.2 `paste': Merge lines of files
+=================================
+
+`paste' writes to standard output lines consisting of sequentially
+corresponding lines of each given file, separated by a TAB character.
+Standard input is used for a file name of `-' or if no input files are
+given.
+
+ For example:
+
+ $ cat num2
+ 1
+ 2
+ $ cat let3
+ a
+ b
+ c
+ $ paste num2 let3
+ 1 a
+ 2 b
+ c
+
+ Synopsis:
+
+ paste [OPTION]... [FILE]...
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-s'
+`--serial'
+ Paste the lines of one file at a time rather than one line from
+ each file. Using the above example data:
+
+ $ paste -s num2 let3
+ 1 2
+ a b c
+
+`-d DELIM-LIST'
+`--delimiters=DELIM-LIST'
+ Consecutively use the characters in DELIM-LIST instead of TAB to
+ separate merged lines. When DELIM-LIST is exhausted, start again
+ at its beginning. Using the above example data:
+
+ $ paste -d '%_' num2 let3 num2
+ 1%a_1
+ 2%b_2
+ %c_
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: join invocation, Prev: paste invocation, Up: Operating on fields within a line
+
+8.3 `join': Join lines on a common field
+========================================
+
+`join' writes to standard output a line for each pair of input lines
+that have identical join fields. Synopsis:
+
+ join [OPTION]... FILE1 FILE2
+
+ Either FILE1 or FILE2 (but not both) can be `-', meaning standard
+input. FILE1 and FILE2 should be sorted on the join fields.
+
+ Normally, the sort order is that of the collating sequence specified
+by the `LC_COLLATE' locale. Unless the `-t' option is given, the sort
+comparison ignores blanks at the start of the join field, as in `sort
+-b'. If the `--ignore-case' option is given, the sort comparison
+ignores the case of characters in the join field, as in `sort -f'.
+
+ However, as a GNU extension, if the input has no unpairable lines the
+sort order can be any order that considers two fields to be equal if and
+only if the sort comparison described above considers them to be equal.
+For example:
+
+ $ cat file1
+ a a1
+ c c1
+ b b1
+ $ cat file2
+ a a2
+ c c2
+ b b2
+ $ join file1 file2
+ a a1 a2
+ c c1 c2
+ b b1 b2
+
+ The defaults are: the join field is the first field in each line;
+fields in the input are separated by one or more blanks, with leading
+blanks on the line ignored; fields in the output are separated by a
+space; each output line consists of the join field, the remaining
+fields from FILE1, then the remaining fields from FILE2.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-a FILE-NUMBER'
+ Print a line for each unpairable line in file FILE-NUMBER (either
+ `1' or `2'), in addition to the normal output.
+
+`-e STRING'
+ Replace those output fields that are missing in the input with
+ STRING.
+
+`-i'
+`--ignore-case'
+ Ignore differences in case when comparing keys. With this option,
+ the lines of the input files must be ordered in the same way. Use
+ `sort -f' to produce this ordering.
+
+`-1 FIELD'
+ Join on field FIELD (a positive integer) of file 1.
+
+`-2 FIELD'
+ Join on field FIELD (a positive integer) of file 2.
+
+`-j FIELD'
+ Equivalent to `-1 FIELD -2 FIELD'.
+
+`-o FIELD-LIST'
+ Construct each output line according to the format in FIELD-LIST.
+ Each element in FIELD-LIST is either the single character `0' or
+ has the form M.N where the file number, M, is `1' or `2' and N is
+ a positive field number.
+
+ A field specification of `0' denotes the join field. In most
+ cases, the functionality of the `0' field spec may be reproduced
+ using the explicit M.N that corresponds to the join field.
+ However, when printing unpairable lines (using either of the `-a'
+ or `-v' options), there is no way to specify the join field using
+ M.N in FIELD-LIST if there are unpairable lines in both files. To
+ give `join' that functionality, POSIX invented the `0' field
+ specification notation.
+
+ The elements in FIELD-LIST are separated by commas or blanks.
+ Blank separators typically need to be quoted for the shell. For
+ example, the commands `join -o 1.2,2.2' and `join -o '1.2 2.2''
+ are equivalent.
+
+ All output lines--including those printed because of any -a or -v
+ option--are subject to the specified FIELD-LIST.
+
+`-t CHAR'
+ Use character CHAR as the input and output field separator. Treat
+ as significant each occurrence of CHAR in the input file.
+
+`-v FILE-NUMBER'
+ Print a line for each unpairable line in file FILE-NUMBER (either
+ `1' or `2'), instead of the normal output.
+
+
+ In addition, when GNU `join' is invoked with exactly one argument,
+the `--help' and `--version' options are recognized. *Note Common
+options::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Operating on characters, Next: Directory listing, Prev: Operating on fields within a line, Up: Top
+
+9 Operating on characters
+*************************
+
+This commands operate on individual characters.
+
+* Menu:
+
+* tr invocation:: Translate, squeeze, and/or delete characters.
+* expand invocation:: Convert tabs to spaces.
+* unexpand invocation:: Convert spaces to tabs.
+
+
+File: coreutils.info, Node: tr invocation, Next: expand invocation, Up: Operating on characters
+
+9.1 `tr': Translate, squeeze, and/or delete characters
+======================================================
+
+Synopsis:
+
+ tr [OPTION]... SET1 [SET2]
+
+ `tr' copies standard input to standard output, performing one of the
+following operations:
+
+ * translate, and optionally squeeze repeated characters in the
+ result,
+
+ * squeeze repeated characters,
+
+ * delete characters,
+
+ * delete characters, then squeeze repeated characters from the
+ result.
+
+ The SET1 and (if given) SET2 arguments define ordered sets of
+characters, referred to below as SET1 and SET2. These sets are the
+characters of the input that `tr' operates on. The `--complement'
+(`-c', `-C') option replaces SET1 with its complement (all of the
+characters that are not in SET1).
+
+ Currently `tr' fully supports only single-byte characters.
+Eventually it will support multibyte characters; when it does, the `-C'
+option will cause it to complement the set of characters, whereas `-c'
+will cause it to complement the set of values. This distinction will
+matter only when some values are not characters, and this is possible
+only in locales using multibyte encodings when the input contains
+encoding errors.
+
+ The program accepts the `--help' and `--version' options. *Note
+Common options::. Options must precede operands.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+* Menu:
+
+* Character sets:: Specifying sets of characters.
+* Translating:: Changing one set of characters to another.
+* Squeezing:: Squeezing repeats and deleting.
+
+
+File: coreutils.info, Node: Character sets, Next: Translating, Up: tr invocation
+
+9.1.1 Specifying sets of characters
+-----------------------------------
+
+The format of the SET1 and SET2 arguments resembles the format of
+regular expressions; however, they are not regular expressions, only
+lists of characters. Most characters simply represent themselves in
+these strings, but the strings can contain the shorthands listed below,
+for convenience. Some of them can be used only in SET1 or SET2, as
+noted below.
+
+Backslash escapes
+ A backslash followed by a character not listed below causes an
+ error message.
+
+ `\a'
+ Control-G.
+
+ `\b'
+ Control-H.
+
+ `\f'
+ Control-L.
+
+ `\n'
+ Control-J.
+
+ `\r'
+ Control-M.
+
+ `\t'
+ Control-I.
+
+ `\v'
+ Control-K.
+
+ `\OOO'
+ The character with the value given by OOO, which is 1 to 3
+ octal digits,
+
+ `\\'
+ A backslash.
+
+Ranges
+ The notation `M-N' expands to all of the characters from M through
+ N, in ascending order. M should collate before N; if it doesn't,
+ an error results. As an example, `0-9' is the same as
+ `0123456789'.
+
+ GNU `tr' does not support the System V syntax that uses square
+ brackets to enclose ranges. Translations specified in that format
+ sometimes work as expected, since the brackets are often
+ transliterated to themselves. However, they should be avoided
+ because they sometimes behave unexpectedly. For example, `tr -d
+ '[0-9]'' deletes brackets as well as digits.
+
+ Many historically common and even accepted uses of ranges are not
+ portable. For example, on EBCDIC hosts using the `A-Z' range will
+ not do what most would expect because `A' through `Z' are not
+ contiguous as they are in ASCII. If you can rely on a POSIX
+ compliant version of `tr', then the best way to work around this
+ is to use character classes (see below). Otherwise, it is most
+ portable (and most ugly) to enumerate the members of the ranges.
+
+Repeated characters
+ The notation `[C*N]' in SET2 expands to N copies of character C.
+ Thus, `[y*6]' is the same as `yyyyyy'. The notation `[C*]' in
+ STRING2 expands to as many copies of C as are needed to make SET2
+ as long as SET1. If N begins with `0', it is interpreted in
+ octal, otherwise in decimal.
+
+Character classes
+ The notation `[:CLASS:]' expands to all of the characters in the
+ (predefined) class CLASS. The characters expand in no particular
+ order, except for the `upper' and `lower' classes, which expand in
+ ascending order. When the `--delete' (`-d') and
+ `--squeeze-repeats' (`-s') options are both given, any character
+ class can be used in SET2. Otherwise, only the character classes
+ `lower' and `upper' are accepted in SET2, and then only if the
+ corresponding character class (`upper' and `lower', respectively)
+ is specified in the same relative position in SET1. Doing this
+ specifies case conversion. The class names are given below; an
+ error results when an invalid class name is given.
+
+ `alnum'
+ Letters and digits.
+
+ `alpha'
+ Letters.
+
+ `blank'
+ Horizontal whitespace.
+
+ `cntrl'
+ Control characters.
+
+ `digit'
+ Digits.
+
+ `graph'
+ Printable characters, not including space.
+
+ `lower'
+ Lowercase letters.
+
+ `print'
+ Printable characters, including space.
+
+ `punct'
+ Punctuation characters.
+
+ `space'
+ Horizontal or vertical whitespace.
+
+ `upper'
+ Uppercase letters.
+
+ `xdigit'
+ Hexadecimal digits.
+
+Equivalence classes
+ The syntax `[=C=]' expands to all of the characters that are
+ equivalent to C, in no particular order. Equivalence classes are
+ a relatively recent invention intended to support non-English
+ alphabets. But there seems to be no standard way to define them
+ or determine their contents. Therefore, they are not fully
+ implemented in GNU `tr'; each character's equivalence class
+ consists only of that character, which is of no particular use.
+
+
+
+File: coreutils.info, Node: Translating, Next: Squeezing, Prev: Character sets, Up: tr invocation
+
+9.1.2 Translating
+-----------------
+
+`tr' performs translation when SET1 and SET2 are both given and the
+`--delete' (`-d') option is not given. `tr' translates each character
+of its input that is in SET1 to the corresponding character in SET2.
+Characters not in SET1 are passed through unchanged. When a character
+appears more than once in SET1 and the corresponding characters in SET2
+are not all the same, only the final one is used. For example, these
+two commands are equivalent:
+
+ tr aaa xyz
+ tr a z
+
+ A common use of `tr' is to convert lowercase characters to
+uppercase. This can be done in many ways. Here are three of them:
+
+ tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
+ tr a-z A-Z
+ tr '[:lower:]' '[:upper:]'
+
+But note that using ranges like `a-z' above is not portable.
+
+ When `tr' is performing translation, SET1 and SET2 typically have
+the same length. If SET1 is shorter than SET2, the extra characters at
+the end of SET2 are ignored.
+
+ On the other hand, making SET1 longer than SET2 is not portable;
+POSIX says that the result is undefined. In this situation, BSD `tr'
+pads SET2 to the length of SET1 by repeating the last character of SET2
+as many times as necessary. System V `tr' truncates SET1 to the length
+of SET2.
+
+ By default, GNU `tr' handles this case like BSD `tr'. When the
+`--truncate-set1' (`-t') option is given, GNU `tr' handles this case
+like the System V `tr' instead. This option is ignored for operations
+other than translation.
+
+ Acting like System V `tr' in this case breaks the relatively common
+BSD idiom:
+
+ tr -cs A-Za-z0-9 '\012'
+
+because it converts only zero bytes (the first element in the
+complement of SET1), rather than all non-alphanumerics, to newlines.
+
+By the way, the above idiom is not portable because it uses ranges, and
+it assumes that the octal code for newline is 012. Assuming a POSIX
+compliant `tr', here is a better way to write it:
+
+ tr -cs '[:alnum:]' '[\n*]'
+
+
+File: coreutils.info, Node: Squeezing, Prev: Translating, Up: tr invocation
+
+9.1.3 Squeezing repeats and deleting
+------------------------------------
+
+When given just the `--delete' (`-d') option, `tr' removes any input
+characters that are in SET1.
+
+ When given just the `--squeeze-repeats' (`-s') option, `tr' replaces
+each input sequence of a repeated character that is in SET1 with a
+single occurrence of that character.
+
+ When given both `--delete' and `--squeeze-repeats', `tr' first
+performs any deletions using SET1, then squeezes repeats from any
+remaining characters using SET2.
+
+ The `--squeeze-repeats' option may also be used when translating, in
+which case `tr' first performs translation, then squeezes repeats from
+any remaining characters using SET2.
+
+ Here are some examples to illustrate various combinations of options:
+
+ * Remove all zero bytes:
+
+ tr -d '\0'
+
+ * Put all words on lines by themselves. This converts all
+ non-alphanumeric characters to newlines, then squeezes each string
+ of repeated newlines into a single newline:
+
+ tr -cs '[:alnum:]' '[\n*]'
+
+ * Convert each sequence of repeated newlines to a single newline:
+
+ tr -s '\n'
+
+ * Find doubled occurrences of words in a document. For example,
+ people often write "the the" with the repeated words separated by
+ a newline. The Bourne shell script below works first by
+ converting each sequence of punctuation and blank characters to a
+ single newline. That puts each "word" on a line by itself. Next
+ it maps all uppercase characters to lower case, and finally it
+ runs `uniq' with the `-d' option to print out only the words that
+ were repeated.
+
+ #!/bin/sh
+ cat -- "$@" \
+ | tr -s '[:punct:][:blank:]' '[\n*]' \
+ | tr '[:upper:]' '[:lower:]' \
+ | uniq -d
+
+ * Deleting a small set of characters is usually straightforward.
+ For example, to remove all `a's, `x's, and `M's you would do this:
+
+ tr -d axM
+
+ However, when `-' is one of those characters, it can be tricky
+ because `-' has special meanings. Performing the same task as
+ above but also removing all `-' characters, we might try `tr -d
+ -axM', but that would fail because `tr' would try to interpret
+ `-a' as a command-line option. Alternatively, we could try
+ putting the hyphen inside the string, `tr -d a-xM', but that
+ wouldn't work either because it would make `tr' interpret `a-x' as
+ the range of characters `a'...`x' rather than the three. One way
+ to solve the problem is to put the hyphen at the end of the list
+ of characters:
+
+ tr -d axM-
+
+ Or you can use `--' to terminate option processing:
+
+ tr -d -- -axM
+
+ More generally, use the character class notation `[=c=]' with `-'
+ (or any other character) in place of the `c':
+
+ tr -d '[=-=]axM'
+
+ Note how single quotes are used in the above example to protect the
+ square brackets from interpretation by a shell.
+
+
+
+File: coreutils.info, Node: expand invocation, Next: unexpand invocation, Prev: tr invocation, Up: Operating on characters
+
+9.2 `expand': Convert tabs to spaces
+====================================
+
+`expand' writes the contents of each given FILE, or standard input if
+none are given or for a FILE of `-', to standard output, with tab
+characters converted to the appropriate number of spaces. Synopsis:
+
+ expand [OPTION]... [FILE]...
+
+ By default, `expand' converts all tabs to spaces. It preserves
+backspace characters in the output; they decrement the column count for
+tab calculations. The default action is equivalent to `-t 8' (set tabs
+every 8 columns).
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-t TAB1[,TAB2]...'
+`--tabs=TAB1[,TAB2]...'
+ If only one tab stop is given, set the tabs TAB1 spaces apart
+ (default is 8). Otherwise, set the tabs at columns TAB1, TAB2,
+ ... (numbered from 0), and replace any tabs beyond the last tab
+ stop given with single spaces. Tab stops can be separated by
+ blanks as well as by commas.
+
+ On older systems, `expand' supports an obsolete option
+ `-TAB1[,TAB2]...', where tab stops must be separated by commas.
+ POSIX 1003.1-2001 (*note Standards conformance::) does not allow
+ this; use `-t TAB1[,TAB2]...' instead.
+
+`-i'
+`--initial'
+ Only convert initial tabs (those that precede all non-space or
+ non-tab characters) on each line to spaces.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: unexpand invocation, Prev: expand invocation, Up: Operating on characters
+
+9.3 `unexpand': Convert spaces to tabs
+======================================
+
+`unexpand' writes the contents of each given FILE, or standard input if
+none are given or for a FILE of `-', to standard output, converting
+blanks at the beginning of each line into as many tab characters as
+needed. In the default POSIX locale, a "blank" is a space or a tab;
+other locales may specify additional blank characters. Synopsis:
+
+ unexpand [OPTION]... [FILE]...
+
+ By default, `unexpand' converts only initial blanks (those that
+precede all non-blank characters) on each line. It preserves backspace
+characters in the output; they decrement the column count for tab
+calculations. By default, tabs are set at every 8th column.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-t TAB1[,TAB2]...'
+`--tabs=TAB1[,TAB2]...'
+ If only one tab stop is given, set the tabs TAB1 columns apart
+ instead of the default 8. Otherwise, set the tabs at columns
+ TAB1, TAB2, ... (numbered from 0), and leave blanks beyond the tab
+ stops given unchanged. Tab stops can be separated by blanks as
+ well as by commas. This option implies the `-a' option.
+
+ On older systems, `unexpand' supports an obsolete option
+ `-TAB1[,TAB2]...', where tab stops must be separated by commas.
+ (Unlike `-t', this obsolete option does not imply `-a'.) POSIX
+ 1003.1-2001 (*note Standards conformance::) does not allow this;
+ use `--first-only -t TAB1[,TAB2]...' instead.
+
+`-a'
+`--all'
+ Also convert all sequences of two or more blanks just before a tab
+ stop. even if they occur after non-blank characters in a line.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Directory listing, Next: Basic operations, Prev: Operating on characters, Up: Top
+
+10 Directory listing
+********************
+
+This chapter describes the `ls' command and its variants `dir' and
+`vdir', which list information about files.
+
+* Menu:
+
+* ls invocation:: List directory contents.
+* dir invocation:: Briefly ls.
+* vdir invocation:: Verbosely ls.
+* dircolors invocation:: Color setup for ls, etc.
+
+
+File: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing
+
+10.1 `ls': List directory contents
+==================================
+
+The `ls' program lists information about files (of any type, including
+directories). Options and file arguments can be intermixed
+arbitrarily, as usual.
+
+ For non-option command-line arguments that are directories, by
+default `ls' lists the contents of directories, not recursively, and
+omitting files with names beginning with `.'. For other non-option
+arguments, by default `ls' lists just the file name. If no non-option
+argument is specified, `ls' operates on the current directory, acting
+as if it had been invoked with a single argument of `.'.
+
+ By default, the output is sorted alphabetically, according to the
+locale settings in effect.(1) If standard output is a terminal, the
+output is in columns (sorted vertically) and control characters are
+output as question marks; otherwise, the output is listed one per line
+and control characters are output as-is.
+
+ Because `ls' is such a fundamental program, it has accumulated many
+options over the years. They are described in the subsections below;
+within each section, options are listed alphabetically (ignoring case).
+The division of options into the subsections is not absolute, since some
+options affect more than one aspect of `ls''s operation.
+
+ Exit status:
+
+ 0 success
+ 1 minor problems (e.g., a subdirectory was not found)
+ 2 serious trouble (e.g., memory exhausted)
+
+ Also see *Note Common options::.
+
+* Menu:
+
+* Which files are listed::
+* What information is listed::
+* Sorting the output::
+* More details about version sort::
+* General output formatting::
+* Formatting file timestamps::
+* Formatting the file names::
+
+ ---------- Footnotes ----------
+
+ (1) If you use a non-POSIX locale (e.g., by setting `LC_ALL' to
+`en_US'), then `ls' may produce output that is sorted differently than
+you're accustomed to. In that case, set the `LC_ALL' environment
+variable to `C'.
+
+
+File: coreutils.info, Node: Which files are listed, Next: What information is listed, Up: ls invocation
+
+10.1.1 Which files are listed
+-----------------------------
+
+These options determine which files `ls' lists information for. By
+default, `ls' lists files and the contents of any directories on the
+command line, except that in directories it ignores files whose names
+start with `.'.
+
+`-a'
+`--all'
+ In directories, do not ignore file names that start with `.'.
+
+`-A'
+`--almost-all'
+ In directories, do not ignore all file names that start with `.';
+ ignore only `.' and `..'. The `--all' (`-a') option overrides
+ this option.
+
+`-B'
+`--ignore-backups'
+ In directories, ignore files that end with `~'. This option is
+ equivalent to `--ignore='*~' --ignore='.*~''.
+
+`-d'
+`--directory'
+ List just the names of directories, as with other types of files,
+ rather than listing their contents. Do not follow symbolic links
+ listed on the command line unless the `--dereference-command-line'
+ (`-H'), `--dereference' (`-L'), or
+ `--dereference-command-line-symlink-to-dir' options are specified.
+
+`-H'
+`--dereference-command-line'
+ If a command line argument specifies a symbolic link, show
+ information for the file the link references rather than for the
+ link itself.
+
+`--dereference-command-line-symlink-to-dir'
+ Do not dereference symbolic links, with one exception: if a
+ command line argument specifies a symbolic link that refers to a
+ directory, show information for that directory rather than for the
+ link itself. This is the default behavior when no other
+ dereferencing-related option has been specified (`--classify'
+ (`-F'), `--directory' (`-d'), (`-l'), `--dereference' (`-L'), or
+ `--dereference-command-line' (`-H')).
+
+`--hide=PATTERN'
+ In directories, ignore files whose names match the shell pattern
+ PATTERN, unless the `--all' (`-a') or `--almost-all' (`-A') is
+ also given. This option acts like `--ignore=PATTERN' except that
+ it has no effect if `--all' (`-a') or `--almost-all' (`-A') is
+ also given.
+
+ This option can be useful in shell aliases. For example, if `lx'
+ is an alias for `ls --hide='*~'' and `ly' is an alias for `ls
+ --ignore='*~'', then the command `lx -A' lists the file `README~'
+ even though `ly -A' would not.
+
+`-I PATTERN'
+`--ignore=PATTERN'
+ In directories, ignore files whose names match the shell pattern
+ (not regular expression) PATTERN. As in the shell, an initial `.'
+ in a file name does not match a wildcard at the start of PATTERN.
+ Sometimes it is useful to give this option several times. For
+ example,
+
+ $ ls --ignore='.??*' --ignore='.[^.]' --ignore='#*'
+
+ The first option ignores names of length 3 or more that start with
+ `.', the second ignores all two-character names that start with `.'
+ except `..', and the third ignores names that start with `#'.
+
+`-L'
+`--dereference'
+ When showing file information for a symbolic link, show information
+ for the file the link references rather than the link itself.
+ However, even with this option, `ls' still prints the name of the
+ link itself, not the name of the file that the link points to.
+
+`-R'
+`--recursive'
+ List the contents of all directories recursively.
+
+
+
+File: coreutils.info, Node: What information is listed, Next: Sorting the output, Prev: Which files are listed, Up: ls invocation
+
+10.1.2 What information is listed
+---------------------------------
+
+These options affect the information that `ls' displays. By default,
+only file names are shown.
+
+`--author'
+ List each file's author when producing long format directory
+ listings. In GNU/Hurd, file authors can differ from their owners,
+ but in other operating systems the two are the same.
+
+`-D'
+`--dired'
+ With the long listing (`-l') format, print an additional line after
+ the main output:
+
+ //DIRED// BEG1 END1 BEG2 END2 ...
+
+ The BEGN and ENDN are unsigned integers that record the byte
+ position of the beginning and end of each file name in the output.
+ This makes it easy for Emacs to find the names, even when they
+ contain unusual characters such as space or newline, without fancy
+ searching.
+
+ If directories are being listed recursively (`-R'), output a
+ similar line with offsets for each subdirectory name:
+
+ //SUBDIRED// BEG1 END1 ...
+
+ Finally, output a line of the form:
+
+ //DIRED-OPTIONS// --quoting-style=WORD
+
+ where WORD is the quoting style (*note Formatting the file
+ names::).
+
+ Here is an actual example:
+
+ $ mkdir -p a/sub/deeper a/sub2
+ $ touch a/f1 a/f2
+ $ touch a/sub/deeper/file
+ $ ls -gloRF --dired a
+ a:
+ total 8
+ -rw-r--r-- 1 0 Dec 3 00:50 f1
+ -rw-r--r-- 1 0 Dec 3 00:50 f2
+ drwxr-xr-x 3 4096 Dec 3 00:50 sub/
+ drwxr-xr-x 2 4096 Dec 3 00:50 sub2/
+
+ a/sub:
+ total 4
+ drwxr-xr-x 2 4096 Dec 3 00:50 deeper/
+
+ a/sub/deeper:
+ total 0
+ -rw-r--r-- 1 0 Dec 3 00:50 file
+
+ a/sub2:
+ total 0
+ //DIRED// 49 51 86 88 123 126 162 166 222 228 288 292
+ //SUBDIRED// 2 3 171 176 233 245 296 302
+ //DIRED-OPTIONS// --quoting-style=literal
+
+ Note that the pairs of offsets on the `//DIRED//' line above
+ delimit these names: `f1', `f2', `sub', `sub2', `deeper', `file'.
+ The offsets on the `//SUBDIRED//' line delimit the following
+ directory names: `a', `a/sub', `a/sub/deeper', `a/sub2'.
+
+ Here is an example of how to extract the fifth entry name,
+ `deeper', corresponding to the pair of offsets, 222 and 228:
+
+ $ ls -gloRF --dired a > out
+ $ dd bs=1 skip=222 count=6 < out 2>/dev/null; echo
+ deeper
+
+ Note that although the listing above includes a trailing slash for
+ the `deeper' entry, the offsets select the name without the
+ trailing slash. However, if you invoke `ls' with `--dired' along
+ with an option like `--escape' (aka `-b') and operate on a file
+ whose name contains special characters, notice that the backslash
+ _is_ included:
+
+ $ touch 'a b'
+ $ ls -blog --dired 'a b'
+ -rw-r--r-- 1 0 Dec 3 00:52 a\ b
+ //DIRED// 31 35
+ //DIRED-OPTIONS// --quoting-style=escape
+
+ If you use a quoting style that adds quote marks (e.g.,
+ `--quoting-style=c'), then the offsets include the quote marks.
+ So beware that the user may select the quoting style via the
+ environment variable `QUOTING_STYLE'. Hence, applications using
+ `--dired' should either specify an explicit
+ `--quoting-style=literal' option (aka `-N' or `--literal') on the
+ command line, or else be prepared to parse the escaped names.
+
+`--full-time'
+ Produce long format directory listings, and list times in full.
+ It is equivalent to using `--format=long' with
+ `--time-style=full-iso' (*note Formatting file timestamps::).
+
+`-g'
+ Produce long format directory listings, but don't display owner
+ information.
+
+`-G'
+`--no-group'
+ Inhibit display of group information in a long format directory
+ listing. (This is the default in some non-GNU versions of `ls',
+ so we provide this option for compatibility.)
+
+`-h'
+`--human-readable'
+ Append a size letter to each size, such as `M' for mebibytes.
+ Powers of 1024 are used, not 1000; `M' stands for 1,048,576 bytes.
+ Use the `--si' option if you prefer powers of 1000.
+
+`-i'
+`--inode'
+ Print the inode number (also called the file serial number and
+ index number) of each file to the left of the file name. (This
+ number uniquely identifies each file within a particular file
+ system.)
+
+`-l'
+`--format=long'
+`--format=verbose'
+ In addition to the name of each file, print the file type,
+ permissions, number of hard links, owner name, group name, size,
+ and timestamp (*note Formatting file timestamps::), normally the
+ modification time.
+
+ Normally the size is printed as a byte count without punctuation,
+ but this can be overridden (*note Block size::). For example, `-h'
+ prints an abbreviated, human-readable count, and
+ `--block-size="'1"' prints a byte count with the thousands
+ separator of the current locale.
+
+ For each directory that is listed, preface the files with a line
+ `total BLOCKS', where BLOCKS is the total disk allocation for all
+ files in that directory. The block size currently defaults to 1024
+ bytes, but this can be overridden (*note Block size::). The
+ BLOCKS computed counts each hard link separately; this is arguably
+ a deficiency.
+
+ The permissions listed are similar to symbolic mode specifications
+ (*note Symbolic Modes::). But `ls' combines multiple bits into the
+ third character of each set of permissions as follows:
+ `s'
+ If the setuid or setgid bit and the corresponding executable
+ bit are both set.
+
+ `S'
+ If the setuid or setgid bit is set but the corresponding
+ executable bit is not set.
+
+ `t'
+ If the sticky bit and the other-executable bit are both set.
+
+ `T'
+ If the sticky bit is set but the other-executable bit is not
+ set.
+
+ `x'
+ If the executable bit is set and none of the above apply.
+
+ `-'
+ Otherwise.
+
+ Following the permission bits is a single character that specifies
+ whether an alternate access method applies to the file. When that
+ character is a space, there is no alternate access method. When it
+ is a printing character (e.g., `+'), then there is such a method.
+
+`-n'
+`--numeric-uid-gid'
+ Produce long format directory listings, but display numeric UIDs
+ and GIDs instead of the owner and group names.
+
+`-o'
+ Produce long format directory listings, but don't display group
+ information. It is equivalent to using `--format=long' with
+ `--no-group' .
+
+`-s'
+`--size'
+ Print the disk allocation of each file to the left of the file
+ name. This is the amount of disk space used by the file, which is
+ usually a bit more than the file's size, but it can be less if the
+ file has holes.
+
+ Normally the disk allocation is printed in units of 1024 bytes,
+ but this can be overridden (*note Block size::).
+
+ For files that are NFS-mounted from an HP-UX system to a BSD
+ system, this option reports sizes that are half the correct
+ values. On HP-UX systems, it reports sizes that are twice the
+ correct values for files that are NFS-mounted from BSD systems.
+ This is due to a flaw in HP-UX; it also affects the HP-UX `ls'
+ program.
+
+`--si'
+ Append an SI-style abbreviation to each size, such as `MB' for
+ megabytes. Powers of 1000 are used, not 1024; `MB' stands for
+ 1,000,000 bytes. This option is equivalent to `--block-size=si'.
+ Use the `-h' or `--human-readable' option if you prefer powers of
+ 1024.
+
+
+
+File: coreutils.info, Node: Sorting the output, Next: More details about version sort, Prev: What information is listed, Up: ls invocation
+
+10.1.3 Sorting the output
+-------------------------
+
+These options change the order in which `ls' sorts the information it
+outputs. By default, sorting is done by character code (e.g., ASCII
+order).
+
+`-c'
+`--time=ctime'
+`--time=status'
+`--time=use'
+ If the long listing format (e.g., `-l', `-o') is being used, print
+ the status change time (the `ctime' in the inode) instead of the
+ modification time. When explicitly sorting by time (`--sort=time'
+ or `-t') or when not using a long listing format, sort according
+ to the status change time.
+
+`-f'
+ Primarily, like `-U'--do not sort; list the files in whatever
+ order they are stored in the directory. But also enable `-a' (list
+ all files) and disable `-l', `--color', and `-s' (if they were
+ specified before the `-f').
+
+`-r'
+`--reverse'
+ Reverse whatever the sorting method is--e.g., list files in reverse
+ alphabetical order, youngest first, smallest first, or whatever.
+
+`-S'
+`--sort=size'
+ Sort by file size, largest first.
+
+`-t'
+`--sort=time'
+ Sort by modification time (the `mtime' in the inode), newest first.
+
+`-u'
+`--time=atime'
+`--time=access'
+ If the long listing format (e.g., `--format=long') is being used,
+ print the last access time (the `atime' in the inode). When
+ explicitly sorting by time (`--sort=time' or `-t') or when not
+ using a long listing format, sort according to the access time.
+
+`-U'
+`--sort=none'
+ Do not sort; list the files in whatever order they are stored in
+ the directory. (Do not do any of the other unrelated things that
+ `-f' does.) This is especially useful when listing very large
+ directories, since not doing any sorting can be noticeably faster.
+
+`-v'
+`--sort=version'
+ Sort by version name and number, lowest first. It behaves like a
+ default sort, except that each sequence of decimal digits is
+ treated numerically as an index/version number. (*Note More
+ details about version sort::.)
+
+`-X'
+`--sort=extension'
+ Sort directory contents alphabetically by file extension
+ (characters after the last `.'); files with no extension are
+ sorted first.
+
+
+
+File: coreutils.info, Node: More details about version sort, Next: General output formatting, Prev: Sorting the output, Up: ls invocation
+
+10.1.4 More details about version sort
+--------------------------------------
+
+The version sort takes into account the fact that file names frequently
+include indices or version numbers. Standard sorting functions usually
+do not produce the ordering that people expect because comparisons are
+made on a character-by-character basis. The version sort addresses
+this problem, and is especially useful when browsing directories that
+contain many files with indices/version numbers in their names:
+
+ $ ls -1 $ ls -1v
+ foo.zml-1.gz foo.zml-1.gz
+ foo.zml-100.gz foo.zml-2.gz
+ foo.zml-12.gz foo.zml-6.gz
+ foo.zml-13.gz foo.zml-12.gz
+ foo.zml-2.gz foo.zml-13.gz
+ foo.zml-25.gz foo.zml-25.gz
+ foo.zml-6.gz foo.zml-100.gz
+
+ Note also that numeric parts with leading zeroes are considered as
+fractional one:
+
+ $ ls -1 $ ls -1v
+ abc-1.007.tgz abc-1.007.tgz
+ abc-1.012b.tgz abc-1.01a.tgz
+ abc-1.01a.tgz abc-1.012b.tgz
+
+ This functionality is implemented using the `strverscmp' function.
+*Note String/Array Comparison: (libc)String/Array Comparison. One
+result of that implementation decision is that `ls -v' does not use the
+locale category, `LC_COLLATE'. As a result, non-numeric prefixes are
+sorted as if `LC_COLLATE' were set to `C'.
+
+
+File: coreutils.info, Node: General output formatting, Next: Formatting file timestamps, Prev: More details about version sort, Up: ls invocation
+
+10.1.5 General output formatting
+--------------------------------
+
+These options affect the appearance of the overall output.
+
+`-1'
+`--format=single-column'
+ List one file per line. This is the default for `ls' when standard
+ output is not a terminal.
+
+`-C'
+`--format=vertical'
+ List files in columns, sorted vertically. This is the default for
+ `ls' if standard output is a terminal. It is always the default
+ for the `dir' and `d' programs. GNU `ls' uses variable width
+ columns to display as many files as possible in the fewest lines.
+
+`--color [=WHEN]'
+ Specify whether to use color for distinguishing file types. WHEN
+ may be omitted, or one of:
+ * none - Do not use color at all. This is the default.
+
+ * auto - Only use color if standard output is a terminal.
+
+ * always - Always use color.
+ Specifying `--color' and no WHEN is equivalent to `--color=always'.
+ Piping a colorized listing through a pager like `more' or `less'
+ usually produces unreadable results. However, using `more -f'
+ does seem to work.
+
+`-F'
+`--classify'
+`--indicator-style=classify'
+ Append a character to each file name indicating the file type.
+ Also, for regular files that are executable, append `*'. The file
+ type indicators are `/' for directories, `@' for symbolic links,
+ `|' for FIFOs, `=' for sockets, and nothing for regular files. Do
+ not follow symbolic links listed on the command line unless the
+ `--dereference-command-line' (`-H'), `--dereference' (`-L'), or
+ `--dereference-command-line-symlink-to-dir' options are specified.
+
+`--indicator-style=WORD'
+ Append a character indicator with style WORD to entry names, as
+ follows:
+ `none'
+ Do not append any character indicator; this is the default.
+
+ `file-type'
+ Append `/' for directories, `@' for symbolic links, `|' for
+ FIFOs, `=' for sockets, and nothing for regular files. This
+ is the same as the `-p' or `--file-type' option.
+
+ `classify'
+ Append `*' for executable regular files, otherwise behave as
+ for `file-type'. This is the same as the `-F' or
+ `--classify' option.
+
+`-k'
+ Print file sizes in 1024-byte blocks, overriding the default block
+ size (*note Block size::). This option is equivalent to
+ `--block-size=1K'.
+
+`-m'
+`--format=commas'
+ List files horizontally, with as many as will fit on each line,
+ separated by `, ' (a comma and a space).
+
+`-p'
+`--file-type'
+`--indicator-style=file-type'
+ Append a character to each file name indicating the file type.
+ This is like `-F', except that executables are not marked.
+
+`-x'
+`--format=across'
+`--format=horizontal'
+ List the files in columns, sorted horizontally.
+
+`-T COLS'
+`--tabsize=COLS'
+ Assume that each tab stop is COLS columns wide. The default is 8.
+ `ls' uses tabs where possible in the output, for efficiency. If
+ COLS is zero, do not use tabs at all.
+
+`-w'
+`--width=COLS'
+ Assume the screen is COLS columns wide. The default is taken from
+ the terminal settings if possible; otherwise the environment
+ variable `COLUMNS' is used if it is set; otherwise the default is
+ 80.
+
+
+
+File: coreutils.info, Node: Formatting file timestamps, Next: Formatting the file names, Prev: General output formatting, Up: ls invocation
+
+10.1.6 Formatting file timestamps
+---------------------------------
+
+By default, file timestamps are listed in abbreviated form. Most
+locales use a timestamp like `2002-03-30 23:45'. However, the default
+POSIX locale uses a date like `Mar 30 2002' for non-recent timestamps,
+and a date-without-year and time like `Mar 30 23:45' for recent
+timestamps.
+
+ A timestamp is considered to be "recent" if it is less than six
+months old, and is not dated in the future. If a timestamp dated today
+is not listed in recent form, the timestamp is in the future, which
+means you probably have clock skew problems which may break programs
+like `make' that rely on file timestamps.
+
+ Time stamps are listed according to the time zone rules specified by
+the `TZ' environment variable, or by the system default rules if `TZ'
+is not set. *Note Specifying the Time Zone with `TZ': (libc)TZ
+Variable.
+
+ The following option changes how file timestamps are printed.
+
+`--time-style=STYLE'
+ List timestamps in style STYLE. The STYLE should be one of the
+ following:
+
+ `+FORMAT'
+ List timestamps using FORMAT, where FORMAT is interpreted
+ like the format argument of `date' (*note date invocation::).
+ For example, `--time-style="+%Y-%m-%d %H:%M:%S"' causes `ls'
+ to list timestamps like `2002-03-30 23:45:56'. As with
+ `date', FORMAT's interpretation is affected by the `LC_TIME'
+ locale category.
+
+ If FORMAT contains two format strings separated by a newline,
+ the former is used for non-recent files and the latter for
+ recent files; if you want output columns to line up, you may
+ need to insert spaces in one of the two formats.
+
+ `full-iso'
+ List timestamps in full using ISO 8601 date, time, and time
+ zone format with nanosecond precision, e.g., `2002-03-30
+ 23:45:56.477817180 -0700'. This style is equivalent to
+ `+%Y-%m-%d %H:%M:%S.%N %z'.
+
+ This is useful because the time output includes all the
+ information that is available from the operating system. For
+ example, this can help explain `make''s behavior, since GNU
+ `make' uses the full timestamp to determine whether a file is
+ out of date.
+
+ `long-iso'
+ List ISO 8601 date and time in minutes, e.g., `2002-03-30
+ 23:45'. These timestamps are shorter than `full-iso'
+ timestamps, and are usually good enough for everyday work.
+ This style is equivalent to `%Y-%m-%d %H:%M'.
+
+ `iso'
+ List ISO 8601 dates for non-recent timestamps (e.g.,
+ `2002-03-30 '), and ISO 8601 month, day, hour, and minute for
+ recent timestamps (e.g., `03-30 23:45'). These timestamps
+ are uglier than `long-iso' timestamps, but they carry nearly
+ the same information in a smaller space and their brevity
+ helps `ls' output fit within traditional 80-column output
+ lines. The following two `ls' invocations are equivalent:
+
+ newline='
+ '
+ ls -l --time-style="+%Y-%m-%d $newline%m-%d %H:%M"
+ ls -l --time-style="iso"
+
+ `locale'
+ List timestamps in a locale-dependent form. For example, a
+ Finnish locale might list non-recent timestamps like `maalis
+ 30 2002' and recent timestamps like `maalis 30 23:45'.
+ Locale-dependent timestamps typically consume more space than
+ `iso' timestamps and are harder for programs to parse because
+ locale conventions vary so widely, but they are easier for
+ many people to read.
+
+ The `LC_TIME' locale category specifies the timestamp format.
+ The default POSIX locale uses timestamps like `Mar 30 2002'
+ and `Mar 30 23:45'; in this locale, the following two `ls'
+ invocations are equivalent:
+
+ newline='
+ '
+ ls -l --time-style="+%b %e %Y$newline%b %e %H:%M"
+ ls -l --time-style="locale"
+
+ Other locales behave differently. For example, in a German
+ locale, `--time-style="locale"' might be equivalent to
+ `--time-style="+%e. %b %Y $newline%e. %b %H:%M"' and might
+ generate timestamps like `30. Ma"r 2002 ' and `30. Ma"r
+ 23:45'.
+
+ `posix-STYLE'
+ List POSIX-locale timestamps if the `LC_TIME' locale category
+ is POSIX, STYLE timestamps otherwise. For example, the
+ default style, which is `posix-long-iso', lists timestamps
+ like `Mar 30 2002' and `Mar 30 23:45' when in the POSIX
+ locale, and like `2002-03-30 23:45' otherwise.
+
+ You can specify the default value of the `--time-style' option with
+the environment variable `TIME_STYLE'; if `TIME_STYLE' is not set the
+default style is `posix-long-iso'. GNU Emacs 21 and later can parse
+ISO dates, but older Emacs versions do not, so if you are using an
+older version of Emacs and specify a non-POSIX locale, you may need to
+set `TIME_STYLE="locale"'.
+
+
+File: coreutils.info, Node: Formatting the file names, Prev: Formatting file timestamps, Up: ls invocation
+
+10.1.7 Formatting the file names
+--------------------------------
+
+These options change how file names themselves are printed.
+
+`-b'
+`--escape'
+`--quoting-style=escape'
+ Quote nongraphic characters in file names using alphabetic and
+ octal backslash sequences like those used in C.
+
+`-N'
+`--literal'
+`--quoting-style=literal'
+ Do not quote file names. However, with `ls' nongraphic characters
+ are still printed as question marks if the output is a terminal
+ and you do not specify the `--show-control-chars' option.
+
+`-q'
+`--hide-control-chars'
+ Print question marks instead of nongraphic characters in file
+ names. This is the default if the output is a terminal and the
+ program is `ls'.
+
+`-Q'
+`--quote-name'
+`--quoting-style=c'
+ Enclose file names in double quotes and quote nongraphic
+ characters as in C.
+
+`--quoting-style=WORD'
+ Use style WORD to quote file names and other strings that may
+ contain arbitrary characters. The WORD should be one of the
+ following:
+ `literal'
+ Output strings as-is; this is the same as the `-N' or
+ `--literal' option.
+
+ `shell'
+ Quote strings for the shell if they contain shell
+ metacharacters or would cause ambiguous output. The quoting
+ is suitable for POSIX-compatible shells like `bash', but it
+ does not always work for incompatible shells like `csh'.
+
+ `shell-always'
+ Quote strings for the shell, even if they would normally not
+ require quoting.
+
+ `c'
+ Quote strings as for C character string literals, including
+ the surrounding double-quote characters; this is the same as
+ the `-Q' or `--quote-name' option.
+
+ `escape'
+ Quote strings as for C character string literals, except omit
+ the surrounding double-quote characters; this is the same as
+ the `-b' or `--escape' option.
+
+ `clocale'
+ Quote strings as for C character string literals, except use
+ surrounding quotation marks appropriate for the locale.
+
+ `locale'
+ Quote strings as for C character string literals, except use
+ surrounding quotation marks appropriate for the locale, and
+ quote `like this' instead of "like this" in the default C
+ locale. This looks nicer on many displays.
+
+ You can specify the default value of the `--quoting-style' option
+ with the environment variable `QUOTING_STYLE'. If that environment
+ variable is not set, the default value is `literal', but this
+ default may change to `shell' in a future version of this package.
+
+`--show-control-chars'
+ Print nongraphic characters as-is in file names. This is the
+ default unless the output is a terminal and the program is `ls'.
+
+
+
+File: coreutils.info, Node: dir invocation, Next: vdir invocation, Prev: ls invocation, Up: Directory listing
+
+10.2 `dir': Briefly list directory contents
+===========================================
+
+`dir' (also installed as `d') is equivalent to `ls -C -b'; that is, by
+default files are listed in columns, sorted vertically, and special
+characters are represented by backslash escape sequences.
+
+ *Note `ls': ls invocation.
+
+
+File: coreutils.info, Node: vdir invocation, Next: dircolors invocation, Prev: dir invocation, Up: Directory listing
+
+10.3 `vdir': Verbosely list directory contents
+==============================================
+
+`vdir' (also installed as `v') is equivalent to `ls -l -b'; that is, by
+default files are listed in long format and special characters are
+represented by backslash escape sequences.
+
+
+File: coreutils.info, Node: dircolors invocation, Prev: vdir invocation, Up: Directory listing
+
+10.4 `dircolors': Color setup for `ls'
+======================================
+
+`dircolors' outputs a sequence of shell commands to set up the terminal
+for color output from `ls' (and `dir', etc.). Typical usage:
+
+ eval "`dircolors [OPTION]... [FILE]`"
+
+ If FILE is specified, `dircolors' reads it to determine which colors
+to use for which file types and extensions. Otherwise, a precompiled
+database is used. For details on the format of these files, run
+`dircolors --print-database'.
+
+ The output is a shell command to set the `LS_COLORS' environment
+variable. You can specify the shell syntax to use on the command line,
+or `dircolors' will guess it from the value of the `SHELL' environment
+variable.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-b'
+`--sh'
+`--bourne-shell'
+ Output Bourne shell commands. This is the default if the `SHELL'
+ environment variable is set and does not end with `csh' or `tcsh'.
+
+`-c'
+`--csh'
+`--c-shell'
+ Output C shell commands. This is the default if `SHELL' ends with
+ `csh' or `tcsh'.
+
+`-p'
+`--print-database'
+ Print the (compiled-in) default color configuration database. This
+ output is itself a valid configuration file, and is fairly
+ descriptive of the possibilities.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Basic operations, Next: Special file types, Prev: Directory listing, Up: Top
+
+11 Basic operations
+*******************
+
+This chapter describes the commands for basic file manipulation:
+copying, moving (renaming), and deleting (removing).
+
+* Menu:
+
+* cp invocation:: Copy files.
+* dd invocation:: Convert and copy a file.
+* install invocation:: Copy files and set attributes.
+* mv invocation:: Move (rename) files.
+* rm invocation:: Remove files or directories.
+* shred invocation:: Remove files more securely.
+
+
+File: coreutils.info, Node: cp invocation, Next: dd invocation, Up: Basic operations
+
+11.1 `cp': Copy files and directories
+=====================================
+
+`cp' copies files (or, optionally, directories). The copy is
+completely independent of the original. You can either copy one file to
+another, or copy arbitrarily many files to a destination directory.
+Synopses:
+
+ cp [OPTION]... [-T] SOURCE DEST
+ cp [OPTION]... SOURCE... DIRECTORY
+ cp [OPTION]... -t DIRECTORY SOURCE...
+
+ * If two file names are given, `cp' copies the first file to the
+ second.
+
+ * If the `--target-directory' (`-t') option is given, or failing
+ that if the last file is a directory and the
+ `--no-target-directory' (`-T') option is not given, `cp' copies
+ each SOURCE file to the specified directory, using the SOURCEs'
+ names.
+
+ Generally, files are written just as they are read. For exceptions,
+see the `--sparse' option below.
+
+ By default, `cp' does not copy directories. However, the `-R',
+`-a', and `-r' options cause `cp' to copy recursively by descending
+into source directories and copying files to corresponding destination
+directories.
+
+ By default, `cp' follows symbolic links only when not copying
+recursively. This default can be overridden with the `--archive'
+(`-a'), `-d', `--dereference' (`-L'), `--no-dereference' (`-P'), and
+`-H' options. If more than one of these options is specified, the last
+one silently overrides the others.
+
+ By default, `cp' copies the contents of special files only when not
+copying recursively. This default can be overridden with the
+`--copy-contents' option.
+
+ `cp' generally refuses to copy a file onto itself, with the
+following exception: if `--force --backup' is specified with SOURCE and
+DEST identical, and referring to a regular file, `cp' will make a
+backup file, either regular or numbered, as specified in the usual ways
+(*note Backup options::). This is useful when you simply want to make
+a backup of an existing file before changing it.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-a'
+`--archive'
+ Preserve as much as possible of the structure and attributes of the
+ original files in the copy (but do not attempt to preserve internal
+ directory structure; i.e., `ls -U' may list the entries in a copied
+ directory in a different order). Equivalent to `-dpPR'.
+
+`-b'
+`--backup[=METHOD]'
+ *Note Backup options::. Make a backup of each file that would
+ otherwise be overwritten or removed. As a special case, `cp'
+ makes a backup of SOURCE when the force and backup options are
+ given and SOURCE and DEST are the same name for an existing,
+ regular file. One useful application of this combination of
+ options is this tiny Bourne shell script:
+
+ #!/bin/sh
+ # Usage: backup FILE...
+ # Create a GNU-style backup of each listed FILE.
+ for i; do
+ cp --backup --force -- "$i" "$i"
+ done
+
+`--copy-contents'
+ If copying recursively, copy the contents of any special files
+ (e.g., FIFOs and device files) as if they were regular files.
+ This means trying to read the data in each source file and writing
+ it to the destination. It is usually a mistake to use this
+ option, as it normally has undesirable effects on special files
+ like FIFOs and the ones typically found in the `/dev' directory.
+ In most cases, `cp -R --copy-contents' will hang indefinitely
+ trying to read from FIFOs and special files like `/dev/console',
+ and it will fill up your destination disk if you use it to copy
+ `/dev/zero'. This option has no effect unless copying
+ recursively, and it does not affect the copying of symbolic links.
+
+`-d'
+ Copy symbolic links as symbolic links rather than copying the
+ files that they point to, and preserve hard links between source
+ files in the copies. Equivalent to `--no-dereference
+ --preserve=links'.
+
+`-f'
+`--force'
+ When copying without this option and an existing destination file
+ cannot be opened for writing, the copy fails. However, with
+ `--force'), when a destination file cannot be opened, `cp' then
+ unlinks it and tries to open it again. Contrast this behavior
+ with that enabled by `--link' and `--symbolic-link', whereby the
+ destination file is never opened but rather is unlinked
+ unconditionally. Also see the description of
+ `--remove-destination'.
+
+`-H'
+ If a command line argument specifies a symbolic link, then copy the
+ file it points to rather than the symbolic link itself. However,
+ copy (preserving its nature) any symbolic link that is encountered
+ via recursive traversal.
+
+`-i'
+`--interactive'
+ Prompt whether to overwrite existing regular destination files.
+
+`-l'
+`--link'
+ Make hard links instead of copies of non-directories.
+
+`-L'
+`--dereference'
+ Always follow symbolic links.
+
+`-P'
+`--no-dereference'
+ Copy symbolic links as symbolic links rather than copying the
+ files that they point to.
+
+`-p'
+`--preserve[=ATTRIBUTE_LIST]'
+ Preserve the specified attributes of the original files. If
+ specified, the ATTRIBUTE_LIST must be a comma-separated list of
+ one or more of the following strings:
+
+ `mode'
+ Preserve the permission attributes.
+
+ `ownership'
+ Preserve the owner and group. On most modern systems, only
+ the super-user may change the owner of a file, and regular
+ users may preserve the group ownership of a file only if they
+ happen to be a member of the desired group.
+
+ `timestamps'
+ Preserve the times of last access and last modification.
+
+ `links'
+ Preserve in the destination files any links between
+ corresponding source files.
+
+ `all'
+ Preserve all file attributes. Equivalent to specifying all
+ of the above.
+
+ Using `--preserve' with no ATTRIBUTE_LIST is equivalent to
+ `--preserve=mode,ownership,timestamps'.
+
+ In the absence of this option, each destination file is created
+ with the permissions of the corresponding source file, minus the
+ bits set in the umask and minus the set-user-id and set-group-id
+ bits. *Note File permissions::.
+
+`--no-preserve=ATTRIBUTE_LIST'
+ Do not preserve the specified attributes. The ATTRIBUTE_LIST has
+ the same form as for `--preserve'.
+
+`--parents'
+ Form the name of each destination file by appending to the target
+ directory a slash and the specified name of the source file. The
+ last argument given to `cp' must be the name of an existing
+ directory. For example, the command:
+
+ cp --parents a/b/c existing_dir
+
+ copies the file `a/b/c' to `existing_dir/a/b/c', creating any
+ missing intermediate directories.
+
+`--reply[=HOW]'
+ Using `--reply=yes' makes `cp' act as if `yes' were given as a
+ response to every prompt about a destination file. That
+ effectively cancels any preceding `--interactive' or `-i' option.
+ Specify `--reply=no' to make `cp' act as if `no' were given as a
+ response to every prompt about a destination file. Specify
+ `--reply=query' to make `cp' prompt the user about each existing
+ destination file.
+
+`-R'
+`-r'
+`--recursive'
+ Copy directories recursively. Symbolic links are not followed by
+ default; see the `--archive' (`-a'), `-d', `--dereference' (`-L'),
+ `--no-dereference' (`-P'), and `-H' options. Special files are
+ copied by creating a destination file of the same type as the
+ source; see the `--copy-contents' option. It is not portable to
+ use `-r' to copy symbolic links or special files. On some non-GNU
+ systems, `-r' implies the equivalent of `-L' and `--copy-contents'
+ for historical reasons. Also, it is not portable to use `-R' to
+ copy symbolic links unless you also specify `-P', as POSIX allows
+ implementations that dereference symbolic links by default.
+
+`--remove-destination'
+ Remove each existing destination file before attempting to open it
+ (contrast with `-f' above).
+
+`--sparse=WHEN'
+ A "sparse file" contains "holes"--a sequence of zero bytes that
+ does not occupy any physical disk blocks; the `read' system call
+ reads these as zeroes. This can both save considerable disk space
+ and increase speed, since many binary files contain lots of
+ consecutive zero bytes. By default, `cp' detects holes in input
+ source files via a crude heuristic and makes the corresponding
+ output file sparse as well. Only regular files may be sparse.
+
+ The WHEN value can be one of the following:
+ `auto'
+ The default behavior: if the input file is sparse, attempt to
+ make the output file sparse, too. However, if an output file
+ exists but refers to a non-regular file, then do not attempt
+ to make it sparse.
+
+ `always'
+ For each sufficiently long sequence of zero bytes in the
+ input file, attempt to create a corresponding hole in the
+ output file, even if the input file does not appear to be
+ sparse. This is useful when the input file resides on a file
+ system that does not support sparse files (for example,
+ `efs' file systems in SGI IRIX 5.3 and earlier), but the
+ output file is on a type of file system that does support
+ them. Holes may be created only in regular files, so if the
+ destination file is of some other type, `cp' does not even
+ try to make it sparse.
+
+ `never'
+ Never make the output file sparse. This is useful in
+ creating a file for use with the `mkswap' command, since such
+ a file must not have any holes.
+
+`--strip-trailing-slashes'
+ Remove any trailing slashes from each SOURCE argument. *Note
+ Trailing slashes::.
+
+`-s'
+`--symbolic-link'
+ Make symbolic links instead of copies of non-directories. All
+ source file names must be absolute (starting with `/') unless the
+ destination files are in the current directory. This option merely
+ results in an error message on systems that do not support
+ symbolic links.
+
+`-S SUFFIX'
+`--suffix=SUFFIX'
+ Append SUFFIX to each backup file made with `-b'. *Note Backup
+ options::.
+
+`-t DIRECTORY'
+`--target-directory=DIRECTORY'
+ Specify the destination DIRECTORY. *Note Target directory::.
+
+`-T'
+`--no-target-directory'
+ Do not treat the last operand specially when it is a directory or a
+ symbolic link to a directory. *Note Target directory::.
+
+`-u'
+`--update'
+ Do not copy a non-directory that has an existing destination with
+ the same or newer modification time. If time stamps are being
+ preserved, the comparison is to the source time stamp truncated to
+ the resolutions of the destination file system and of the system
+ calls used to update time stamps; this avoids duplicate work if
+ several `cp -pu' commands are executed with the same source and
+ destination.
+
+`-v'
+`--verbose'
+ Print the name of each file before copying it.
+
+`-V METHOD'
+`--version-control=METHOD'
+ Change the type of backups made with `-b'. The METHOD argument
+ can be `none' (or `off'), `numbered' (or `t'), `existing' (or
+ `nil'), or `never' (or `simple'). *Note Backup options::.
+
+`-x'
+`--one-file-system'
+ Skip subdirectories that are on different file systems from the
+ one that the copy started on. However, mount point directories
+ _are_ copied.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: dd invocation, Next: install invocation, Prev: cp invocation, Up: Basic operations
+
+11.2 `dd': Convert and copy a file
+==================================
+
+`dd' copies a file (from standard input to standard output, by default)
+with a changeable I/O block size, while optionally performing
+conversions on it. Synopses:
+
+ dd [OPERAND]...
+ dd OPTION
+
+ The only options are `--help' and `--version'. *Note Common
+options::. `dd' accepts the following operands.
+
+`if=FILE'
+ Read from FILE instead of standard input.
+
+`of=FILE'
+ Write to FILE instead of standard output. Unless `conv=notrunc'
+ is given, `dd' truncates FILE to zero bytes (or the size specified
+ with `seek=').
+
+`ibs=BYTES'
+ Read BYTES bytes at a time.
+
+`obs=BYTES'
+ Write BYTES bytes at a time.
+
+`bs=BYTES'
+ Both read and write BYTES bytes at a time. This overrides `ibs'
+ and `obs'.
+
+`cbs=BYTES'
+ Convert BYTES bytes at a time.
+
+`skip=BLOCKS'
+ Skip BLOCKS `ibs'-byte blocks in the input file before copying.
+
+`seek=BLOCKS'
+ Skip BLOCKS `obs'-byte blocks in the output file before copying.
+
+`count=BLOCKS'
+ Copy BLOCKS `ibs'-byte blocks from the input file, instead of
+ everything until the end of the file.
+
+`conv=CONVERSION[,CONVERSION]...'
+ Convert the file as specified by the CONVERSION argument(s). (No
+ spaces around any comma(s).)
+
+ Conversions:
+
+ `ascii'
+ Convert EBCDIC to ASCII, using the conversion table specified
+ by POSIX. This provides a 1:1 translation for all 256 bytes.
+
+ `ebcdic'
+ Convert ASCII to EBCDIC. This is the inverse of the `ascii'
+ conversion.
+
+ `ibm'
+ Convert ASCII to alternate EBCDIC, using the alternate
+ conversion table specified by POSIX. This is not a 1:1
+ translation, but reflects common historical practice for `~',
+ `[', and `]'.
+
+ The `ascii', `ebcdic', and `ibm' conversions are mutually
+ exclusive.
+
+ `block'
+ For each line in the input, output `cbs' bytes, replacing the
+ input newline with a space and padding with spaces as
+ necessary.
+
+ `unblock'
+ Replace trailing spaces in each `cbs'-sized input block with a
+ newline.
+
+ The `block' and `unblock' conversions are mutually exclusive.
+
+ `lcase'
+ Change uppercase letters to lowercase.
+
+ `ucase'
+ Change lowercase letters to uppercase.
+
+ The `lcase' and `ucase' conversions are mutually exclusive.
+
+ `swab'
+ Swap every pair of input bytes. GNU `dd', unlike others,
+ works when an odd number of bytes are read--the last byte is
+ simply copied (since there is nothing to swap it with).
+
+ `noerror'
+ Continue after read errors.
+
+ `nocreat'
+ Do not create the output file; the output file must already
+ exist.
+
+ `excl'
+ Fail if the output file already exists; `dd' must create the
+ output file itself.
+
+ The `excl' and `nocreat' conversions are mutually exclusive.
+
+ `notrunc'
+ Do not truncate the output file.
+
+ `sync'
+ Pad every input block to size of `ibs' with trailing zero
+ bytes. When used with `block' or `unblock', pad with spaces
+ instead of zero bytes.
+
+ `fdatasync'
+ Synchronize output data just before finishing. This forces a
+ physical write of output data.
+
+ `fsync'
+ Synchronize output data and metadata just before finishing.
+ This forces a physical write of output data and metadata.
+
+
+`iflag=FLAG[,FLAG]...'
+ Access the input file using the flags specified by the FLAG
+ argument(s). (No spaces around any comma(s).)
+
+`oflag=FLAG[,FLAG]...'
+ Access the output file using the flags specified by the FLAG
+ argument(s). (No spaces around any comma(s).)
+
+ Flags:
+
+ `append'
+ Write in append mode, so that even if some other process is
+ writing to this file, every `dd' write will append to the
+ current contents of the file. This flag makes sense only for
+ output.
+
+ `direct'
+ Use direct I/O for data, avoiding the buffer cache.
+
+ `dsync'
+ Use synchronized I/O for data. For the output file, this
+ forces a physical write of output data on each write. For
+ the input file, this flag can matter when reading from a
+ remote file that has been written to synchronously by some
+ other process. Metadata (e.g., last-access and last-modified
+ time) is not necessarily synchronized.
+
+ `sync'
+ Use synchronized I/O for both data and metadata.
+
+ `nonblock'
+ Use non-blocking I/O.
+
+ `nofollow'
+ Do not follow symbolic links.
+
+ `noctty'
+ Do not assign the file to be a controlling terminal for `dd'.
+ This has no effect when the file is not a terminal. On many
+ hosts (e.g., GNU/Linux hosts), this option has no effect at
+ all.
+
+
+ These flags are not supported on all systems, and `dd' rejects
+ attempts to use them when they are not supported. When reading
+ from standard input or writing to standard output, the `nofollow'
+ and `noctty' flags should not be specified, and the other flags
+ (e.g., `nonblock') can affect how other processes behave with the
+ affected file descriptors, even after `dd' exits.
+
+
+ The numeric-valued strings above (BYTES and BLOCKS) can be followed
+by a multiplier: `b'=512, `c'=1, `w'=2, `xM'=M, or any of the standard
+block size suffixes like `k'=1024 (*note Block size::).
+
+ Use different `dd' invocations to use different block sizes for
+skipping and I/O. For example, the following shell commands copy data
+in 512 KiB blocks between a disk and a tape, but do not save or restore
+a 4 KiB label at the start of the disk:
+
+ disk=/dev/rdsk/c0t1d0s2
+ tape=/dev/rmt/0
+
+ # Copy all but the label from disk to tape.
+ (dd bs=4k skip=1 count=0 && dd bs=512k) <$disk >$tape
+
+ # Copy from tape back to disk, but leave the disk label alone.
+ (dd bs=4k seek=1 count=0 && dd bs=512k) <$tape >$disk
+
+ Note that sending a `SIGUSR1' signal to a running `dd' process makes
+it print I/O statistics to standard error, then to resume copying. In
+the example below, `dd' is run in the background to copy 10 million
+blocks. The `kill' command makes it output intermediate I/O statistics,
+and when `dd' completes, it outputs the final statistics.
+
+ $ dd if=/dev/zero of=/dev/null count=10MB & pid=$!
+ $ kill -s USR1 $pid; wait $pid
+ 3385223+0 records in
+ 3385223+0 records out
+ 1733234176 bytes (1.7 GB) copied, 6.42173 seconds, 270 MB/s
+ 10000000+0 records in
+ 10000000+0 records out
+ 5120000000 bytes (5.1 GB) copied, 18.913 seconds, 271 MB/s
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: install invocation, Next: mv invocation, Prev: dd invocation, Up: Basic operations
+
+11.3 `install': Copy files and set attributes
+=============================================
+
+`install' copies files while setting their permission modes and, if
+possible, their owner and group. Synopses:
+
+ install [OPTION]... [-T] SOURCE DEST
+ install [OPTION]... SOURCE... DIRECTORY
+ install [OPTION]... -t DIRECTORY SOURCE...
+ install [OPTION]... -d DIRECTORY...
+
+ * If two file names are given, `install' copies the first file to the
+ second.
+
+ * If the `--target-directory' (`-t') option is given, or failing
+ that if the last file is a directory and the
+ `--no-target-directory' (`-T') option is not given, `install'
+ copies each SOURCE file to the specified directory, using the
+ SOURCEs' names.
+
+ * If the `--directory' (`-d') option is given, `install' creates
+ each DIRECTORY and any missing parent directories.
+
+ `install' is similar to `cp', but allows you to control the
+attributes of destination files. It is typically used in Makefiles to
+copy programs into their destination directories. It refuses to copy
+files onto themselves.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-b'
+`--backup[=METHOD]'
+ *Note Backup options::. Make a backup of each file that would
+ otherwise be overwritten or removed.
+
+`-c'
+ Ignored; for compatibility with old Unix versions of `install'.
+
+`-d'
+`--directory'
+ Create each given directory and any missing parent directories,
+ setting the owner, group and mode as given on the command line or
+ to the defaults. It also gives any parent directories it creates
+ those attributes. (This is different from the SunOS 4.x
+ `install', which gives directories that it creates the default
+ attributes.)
+
+`-g GROUP'
+`--group=GROUP'
+ Set the group ownership of installed files or directories to
+ GROUP. The default is the process's current group. GROUP may be
+ either a group name or a numeric group id.
+
+`-m MODE'
+`--mode=MODE'
+ Set the permissions for the installed file or directory to MODE,
+ which can be either an octal number, or a symbolic mode as in
+ `chmod', with 0 as the point of departure (*note File
+ permissions::). The default mode is `u=rwx,go=rx'--read, write,
+ and execute for the owner, and read and execute for group and
+ other.
+
+`-o OWNER'
+`--owner=OWNER'
+ If `install' has appropriate privileges (is run as root), set the
+ ownership of installed files or directories to OWNER. The default
+ is `root'. OWNER may be either a user name or a numeric user ID.
+
+`-p'
+`--preserve-timestamps'
+ Set the time of last access and the time of last modification of
+ each installed file to match those of each corresponding original
+ file. When a file is installed without this option, its last
+ access and last modification times are both set to the time of
+ installation. This option is useful if you want to use the last
+ modification times of installed files to keep track of when they
+ were last built as opposed to when they were last installed.
+
+`-s'
+`--strip'
+ Strip the symbol tables from installed binary executables.
+
+`-S SUFFIX'
+`--suffix=SUFFIX'
+ Append SUFFIX to each backup file made with `-b'. *Note Backup
+ options::.
+
+`-t DIRECTORY'
+`--target-directory=DIRECTORY'
+ Specify the destination DIRECTORY. *Note Target directory::.
+
+`-T'
+`--no-target-directory'
+ Do not treat the last operand specially when it is a directory or a
+ symbolic link to a directory. *Note Target directory::.
+
+`-v'
+`--verbose'
+ Print the name of each file before copying it.
+
+`-V METHOD'
+`--version-control=METHOD'
+ Change the type of backups made with `-b'. The METHOD argument
+ can be `none' (or `off'), `numbered' (or `t'), `existing' (or
+ `nil'), or `never' (or `simple'). *Note Backup options::.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: mv invocation, Next: rm invocation, Prev: install invocation, Up: Basic operations
+
+11.4 `mv': Move (rename) files
+==============================
+
+`mv' moves or renames files (or directories). Synopses:
+
+ mv [OPTION]... [-T] SOURCE DEST
+ mv [OPTION]... SOURCE... DIRECTORY
+ mv [OPTION]... -t DIRECTORY SOURCE...
+
+ * If two file names are given, `mv' moves the first file to the
+ second.
+
+ * If the `--target-directory' (`-t') option is given, or failing
+ that if the last file is a directory and the
+ `--no-target-directory' (`-T') option is not given, `mv' moves
+ each SOURCE file to the specified directory, using the SOURCEs'
+ names.
+
+ `mv' can move any type of file from one file system to another.
+Prior to version `4.0' of the fileutils, `mv' could move only regular
+files between file systems. For example, now `mv' can move an entire
+directory hierarchy including special device files from one partition
+to another. It first uses some of the same code that's used by `cp -a'
+to copy the requested directories and files, then (assuming the copy
+succeeded) it removes the originals. If the copy fails, then the part
+that was copied to the destination partition is removed. If you were
+to copy three directories from one partition to another and the copy of
+the first directory succeeded, but the second didn't, the first would
+be left on the destination partition and the second and third would be
+left on the original partition.
+
+ If a destination file exists but is normally unwritable, standard
+input is a terminal, and the `-f' or `--force' option is not given,
+`mv' prompts the user for whether to replace the file. (You might own
+the file, or have write permission on its directory.) If the response
+is not affirmative, the file is skipped.
+
+ _Warning_: If you try to move a symlink that points to a directory,
+and you specify the symlink with a trailing slash, then `mv' doesn't
+move the symlink but instead moves the directory referenced by the
+symlink. *Note Trailing slashes::.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-b'
+`--backup[=METHOD]'
+ *Note Backup options::. Make a backup of each file that would
+ otherwise be overwritten or removed.
+
+`-f'
+`--force'
+ Do not prompt the user before removing a destination file.
+
+`-i'
+`--interactive'
+ Prompt whether to overwrite each existing destination file,
+ regardless of its permissions. If the response is not
+ affirmative, the file is skipped.
+
+`--reply[=HOW]'
+ Specifying `--reply=yes' is equivalent to using `--force'.
+ Specify `--reply=no' to make `mv' act as if `no' were given as a
+ response to every prompt about a destination file. Specify
+ `--reply=query' to make `mv' prompt the user about each existing
+ destination file.
+
+`-u'
+`--update'
+ Do not move a non-directory that has an existing destination with
+ the same or newer modification time. If the move is across file
+ system boundaries, the comparison is to the source time stamp
+ truncated to the resolutions of the destination file system and of
+ the system calls used to update time stamps; this avoids duplicate
+ work if several `mv -u' commands are executed with the same source
+ and destination.
+
+`-v'
+`--verbose'
+ Print the name of each file before moving it.
+
+`--strip-trailing-slashes'
+ Remove any trailing slashes from each SOURCE argument. *Note
+ Trailing slashes::.
+
+`-S SUFFIX'
+`--suffix=SUFFIX'
+ Append SUFFIX to each backup file made with `-b'. *Note Backup
+ options::.
+
+`-t DIRECTORY'
+`--target-directory=DIRECTORY'
+ Specify the destination DIRECTORY. *Note Target directory::.
+
+`-T'
+`--no-target-directory'
+ Do not treat the last operand specially when it is a directory or a
+ symbolic link to a directory. *Note Target directory::.
+
+`-V METHOD'
+`--version-control=METHOD'
+ Change the type of backups made with `-b'. The METHOD argument
+ can be `none' (or `off'), `numbered' (or `t'), `existing' (or
+ `nil'), or `never' (or `simple'). *Note Backup options::.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: rm invocation, Next: shred invocation, Prev: mv invocation, Up: Basic operations
+
+11.5 `rm': Remove files or directories
+======================================
+
+`rm' removes each given FILE. By default, it does not remove
+directories. Synopsis:
+
+ rm [OPTION]... [FILE]...
+
+ If a file is unwritable, standard input is a terminal, and the `-f'
+or `--force' option is not given, or the `-i' or `--interactive' option
+_is_ given, `rm' prompts the user for whether to remove the file. If
+the response is not affirmative, the file is skipped.
+
+ _Warning_: If you use `rm' to remove a file, it is usually possible
+to recover the contents of that file. If you want more assurance that
+the contents are truly unrecoverable, consider using `shred'.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-d'
+`--directory'
+ Use the `unlink' function unconditionally rather than attempting
+ to check whether the file is a directory and using `rmdir' if it
+ is a directory. This can be useful on corrupted file systems where
+ `unlink' works even though other, file-checking functions fail.
+ For directories, this works only if you have appropriate
+ privileges and if your operating system supports `unlink' for
+ directories. Because unlinking a directory causes any files in
+ the deleted directory to become unreferenced, it is wise to `fsck'
+ the file system afterwards.
+
+`-f'
+`--force'
+ Ignore nonexistent files and never prompt the user. Ignore any
+ previous `--interactive' (`-i') option.
+
+`-i'
+`--interactive'
+ Prompt whether to remove each file. If the response is not
+ affirmative, the file is skipped. Ignore any previous `--force'
+ (`-f') option.
+
+`--preserve-root'
+ Fail upon any attempt to remove the file system root, `/', when
+ used with the `--recursive' option. Without `--recursive', this
+ option has no effect. *Note Treating / specially::.
+
+`--no-preserve-root'
+ Cancel the effect of any preceding `--preserve-root' option.
+ *Note Treating / specially::.
+
+`-r'
+`-R'
+`--recursive'
+ Remove the contents of directories recursively.
+
+`-v'
+`--verbose'
+ Print the name of each file before removing it.
+
+
+ One common question is how to remove files whose names begin with a
+`-'. GNU `rm', like every program that uses the `getopt' function to
+parse its arguments, lets you use the `--' option to indicate that all
+following arguments are non-options. To remove a file called `-f' in
+the current directory, you could type either:
+
+ rm -- -f
+
+or:
+
+ rm ./-f
+
+ The Unix `rm' program's use of a single `-' for this purpose
+predates the development of the getopt standard syntax.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: shred invocation, Prev: rm invocation, Up: Basic operations
+
+11.6 `shred': Remove files more securely
+========================================
+
+`shred' overwrites devices or files, to help prevent even very
+expensive hardware from recovering the data.
+
+ Ordinarily when you remove a file (*note rm invocation::), the data
+is not actually destroyed. Only the index listing where the file is
+stored is destroyed, and the storage is made available for reuse.
+There are undelete utilities that will attempt to reconstruct the index
+and can bring the file back if the parts were not reused.
+
+ On a busy system with a nearly-full drive, space can get reused in a
+few seconds. But there is no way to know for sure. If you have
+sensitive data, you may want to be sure that recovery is not possible
+by actually overwriting the file with non-sensitive data.
+
+ However, even after doing that, it is possible to take the disk back
+to a laboratory and use a lot of sensitive (and expensive) equipment to
+look for the faint "echoes" of the original data underneath the
+overwritten data. If the data has only been overwritten once, it's not
+even that hard.
+
+ The best way to remove something irretrievably is to destroy the
+media it's on with acid, melt it down, or the like. For cheap
+removable media like floppy disks, this is the preferred method.
+However, hard drives are expensive and hard to melt, so the `shred'
+utility tries to achieve a similar effect non-destructively.
+
+ This uses many overwrite passes, with the data patterns chosen to
+maximize the damage they do to the old data. While this will work on
+floppies, the patterns are designed for best effect on hard drives.
+For more details, see the source code and Peter Gutmann's paper `Secure
+Deletion of Data from Magnetic and Solid-State Memory'
+(http://www.cs.auckland.ac.nz/~pgut001/pubs/secure_del.html), from the
+proceedings of the Sixth USENIX Security Symposium (San Jose,
+California, July 22-25, 1996).
+
+ *Please note* that `shred' relies on a very important assumption:
+that the file system overwrites data in place. This is the traditional
+way to do things, but many modern file system designs do not satisfy
+this assumption. Exceptions include:
+
+ * Log-structured or journaled file systems, such as those supplied
+ with AIX and Solaris, and JFS, ReiserFS, XFS, Ext3, BFS, NTFS etc.
+ when they are configured to journal _data_.
+
+ * File systems that write redundant data and carry on even if some
+ writes fail, such as RAID-based file systems.
+
+ * File systems that make snapshots, such as Network Appliance's NFS
+ server.
+
+ * File systems that cache in temporary locations, such as NFS
+ version 3 clients.
+
+ * Compressed file systems.
+
+ If you are not sure how your file system operates, then you should
+assume that it does not overwrite data in place, which means that shred
+cannot reliably operate on regular files in your file system.
+
+ Generally speaking, it is more reliable to shred a device than a
+file, since this bypasses the problem of file system design mentioned
+above. However, even shredding devices is not always completely
+reliable. For example, most disks map out bad sectors invisibly to the
+application; if the bad sectors contain sensitive data, `shred' won't
+be able to destroy it.
+
+ `shred' makes no attempt to detect or report this problem, just as
+it makes no attempt to do anything about backups. However, since it is
+more reliable to shred devices than files, `shred' by default does not
+truncate or remove the output file. This default is more suitable for
+devices, which typically cannot be truncated and should not be removed.
+
+ Finally, consider the risk of backups and mirrors. File system
+backups and remote mirrors may contain copies of the file that cannot
+be removed, and that will allow a shredded file to be recovered later.
+So if you keep any data you may later want to destroy using `shred', be
+sure that it is not backed up or mirrored.
+
+ shred [OPTION]... FILE[...]
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-f'
+`--force'
+ Override file permissions if necessary to allow overwriting.
+
+`-NUMBER'
+`-n NUMBER'
+`--iterations=NUMBER'
+ By default, `shred' uses 25 passes of overwrite. This is enough
+ for all of the useful overwrite patterns to be used at least once.
+ You can reduce this to save time, or increase it if you have a lot
+ of time to waste.
+
+`-s BYTES'
+`--size=BYTES'
+ Shred the first BYTES bytes of the file. The default is to shred
+ the whole file. BYTES can be followed by a size specification like
+ `K', `M', or `G' to specify a multiple. *Note Block size::.
+
+`-u'
+`--remove'
+ After shredding a file, truncate it (if possible) and then remove
+ it. If a file has multiple links, only the named links will be
+ removed.
+
+`-v'
+`--verbose'
+ Display status updates as sterilization proceeds.
+
+`-x'
+`--exact'
+ By default, `shred' rounds the size of a regular file up to the
+ next multiple of the file system block size to fully erase the
+ last block of the file. Use `--exact' to suppress that behavior.
+ Thus, by default if you shred a 10-byte regular file on a system
+ with 512-byte blocks, the resulting file will be 512 bytes long.
+ With this option, shred does not increase the apparent size of the
+ file.
+
+`-z'
+`--zero'
+ Normally, the last pass that `shred' writes is made up of random
+ data. If this would be conspicuous on your hard drive (for
+ example, because it looks like encrypted data), or you just think
+ it's tidier, the `--zero' option adds an additional overwrite pass
+ with all zero bits. This is in addition to the number of passes
+ specified by the `--iterations' option.
+
+
+ You might use the following command to erase all trace of the file
+system you'd created on the floppy disk in your first drive. That
+command takes about 20 minutes to erase a "1.44MB" (actually 1440 KiB)
+floppy.
+
+ shred --verbose /dev/fd0
+
+ Similarly, to erase all data on a selected partition of your hard
+disk, you could give a command like this:
+
+ shred --verbose /dev/sda5
+
+ A FILE of `-' denotes standard output. The intended use of this is
+to shred a removed temporary file. For example:
+
+ i=`tempfile -m 0600`
+ exec 3<>"$i"
+ rm -- "$i"
+ echo "Hello, world" >&3
+ shred - >&3
+ exec 3>-
+
+ However, the command `shred - >file' does not shred the contents of
+FILE, since the shell truncates FILE before invoking `shred'. Use the
+command `shred file' or (if using a Bourne-compatible shell) the
+command `shred - 1<>file' instead.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Special file types, Next: Changing file attributes, Prev: Basic operations, Up: Top
+
+12 Special file types
+*********************
+
+This chapter describes commands which create special types of files (and
+`rmdir', which removes directories, one special file type).
+
+ Although Unix-like operating systems have markedly fewer special file
+types than others, not _everything_ can be treated only as the
+undifferentiated byte stream of "normal files". For example, when a
+file is created or removed, the system must record this information,
+which it does in a "directory"--a special type of file. Although you
+can read directories as normal files, if you're curious, in order for
+the system to do its job it must impose a structure, a certain order,
+on the bytes of the file. Thus it is a "special" type of file.
+
+ Besides directories, other special file types include named pipes
+(FIFOs), symbolic links, sockets, and so-called "special files".
+
+* Menu:
+
+* link invocation:: Make a hard link via the link syscall
+* ln invocation:: Make links between files.
+* mkdir invocation:: Make directories.
+* mkfifo invocation:: Make FIFOs (named pipes).
+* mknod invocation:: Make block or character special files.
+* readlink invocation:: Print the referent of a symbolic link.
+* rmdir invocation:: Remove empty directories.
+* unlink invocation:: Remove files via the unlink syscall
+
+
+File: coreutils.info, Node: link invocation, Next: ln invocation, Up: Special file types
+
+12.1 `link': Make a hard link via the link syscall
+==================================================
+
+`link' creates a single hard link at a time. It is a minimalist
+interface to the system-provided `link' function. *Note Hard Links:
+(libc)Hard Links. It avoids the bells and whistles of the more
+commonly-used `ln' command (*note ln invocation::). Synopsis:
+
+ link FILENAME LINKNAME
+
+ FILENAME must specify an existing file, and LINKNAME must specify a
+nonexistent entry in an existing directory. `link' simply calls `link
+(FILENAME, LINKNAME)' to create the link.
+
+ On a GNU system, this command acts like `ln --directory
+--no-target-directory FILENAME LINKNAME'. However, the `--directory'
+and `--no-target-directory' options are not specified by POSIX, and the
+`link' command is more portable in practice.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: ln invocation, Next: mkdir invocation, Prev: link invocation, Up: Special file types
+
+12.2 `ln': Make links between files
+===================================
+
+`ln' makes links between files. By default, it makes hard links; with
+the `-s' option, it makes symbolic (or "soft") links. Synopses:
+
+ ln [OPTION]... [-T] TARGET LINKNAME
+ ln [OPTION]... TARGET
+ ln [OPTION]... TARGET... DIRECTORY
+ ln [OPTION]... -t DIRECTORY TARGET...
+
+ * If two file names are given, `ln' creates a link to the first file
+ from the second.
+
+ * If one TARGET is given, `ln' creates a link to that file in the
+ current directory.
+
+ * If the `--target-directory' (`-t') option is given, or failing
+ that if the last file is a directory and the
+ `--no-target-directory' (`-T') option is not given, `ln' creates a
+ link to each TARGET file in the specified directory, using the
+ TARGETs' names.
+
+
+ Normally `ln' does not remove existing files. Use the `--force'
+(`-f') option to remove them unconditionally, the `--interactive'
+(`-i') option to remove them conditionally, and the `--backup' (`-b')
+option to rename them.
+
+ A "hard link" is another name for an existing file; the link and the
+original are indistinguishable. Technically speaking, they share the
+same inode, and the inode contains all the information about a
+file--indeed, it is not incorrect to say that the inode _is_ the file.
+On all existing implementations, you cannot make a hard link to a
+directory, and hard links cannot cross file system boundaries. (These
+restrictions are not mandated by POSIX, however.)
+
+ "Symbolic links" ("symlinks" for short), on the other hand, are a
+special file type (which not all kernels support: System V release 3
+(and older) systems lack symlinks) in which the link file actually
+refers to a different file, by name. When most operations (opening,
+reading, writing, and so on) are passed the symbolic link file, the
+kernel automatically "dereferences" the link and operates on the target
+of the link. But some operations (e.g., removing) work on the link
+file itself, rather than on its target. *Note Symbolic Links:
+(libc)Symbolic Links.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-b'
+`--backup[=METHOD]'
+ *Note Backup options::. Make a backup of each file that would
+ otherwise be overwritten or removed.
+
+`-d'
+`-F'
+`--directory'
+ Allow the super-user to attempt to make hard links to directories.
+ However, note that this will probably fail due to system
+ restrictions, even for the super-user.
+
+`-f'
+`--force'
+ Remove existing destination files.
+
+`-i'
+`--interactive'
+ Prompt whether to remove existing destination files.
+
+`-n'
+`--no-dereference'
+ Do not treat the last operand specially when it is a symbolic link
+ to a directory. Instead, treat it as if it were a normal file.
+
+ When the destination is an actual directory (not a symlink to one),
+ there is no ambiguity. The link is created in that directory.
+ But when the specified destination is a symlink to a directory,
+ there are two ways to treat the user's request. `ln' can treat
+ the destination just as it would a normal directory and create the
+ link in it. On the other hand, the destination can be viewed as a
+ non-directory--as the symlink itself. In that case, `ln' must
+ delete or backup that symlink before creating the new link. The
+ default is to treat a destination that is a symlink to a directory
+ just like a directory.
+
+ This option is weaker than the `--no-target-directory' (`-T')
+ option, so it has no effect if both options are given.
+
+`-s'
+`--symbolic'
+ Make symbolic links instead of hard links. This option merely
+ produces an error message on systems that do not support symbolic
+ links.
+
+`-S SUFFIX'
+`--suffix=SUFFIX'
+ Append SUFFIX to each backup file made with `-b'. *Note Backup
+ options::.
+
+`-t DIRECTORY'
+`--target-directory=DIRECTORY'
+ Specify the destination DIRECTORY. *Note Target directory::.
+
+`-T'
+`--no-target-directory'
+ Do not treat the last operand specially when it is a directory or a
+ symbolic link to a directory. *Note Target directory::.
+
+`-v'
+`--verbose'
+ Print the name of each file before linking it.
+
+`-V METHOD'
+`--version-control=METHOD'
+ Change the type of backups made with `-b'. The METHOD argument
+ can be `none' (or `off'), `numbered' (or `t'), `existing' (or
+ `nil'), or `never' (or `simple'). *Note Backup options::.
+
+
+ Examples:
+
+ ln -s /some/name # creates link ./name pointing to /some/name
+ ln -s /some/name myname # creates link ./myname pointing to /some/name
+ ln -s a b .. # creates links ../a and ../b pointing to ./a and ./b
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: mkdir invocation, Next: mkfifo invocation, Prev: ln invocation, Up: Special file types
+
+12.3 `mkdir': Make directories
+==============================
+
+`mkdir' creates directories with the specified names. Synopsis:
+
+ mkdir [OPTION]... NAME...
+
+ If a NAME is an existing file but not a directory, `mkdir' prints a
+warning message on stderr and will exit with a status of 1 after
+processing any remaining NAMEs. The same is done when a NAME is an
+existing directory and the -p option is not given. If a NAME is an
+existing directory and the -p option is given, `mkdir' will ignore it.
+That is, `mkdir' will not print a warning, raise an error, or change
+the mode of the directory (even if the -m option is given), and will
+move on to processing any remaining NAMEs.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-m MODE'
+`--mode=MODE'
+ Set the mode of created directories to MODE, which is symbolic as
+ in `chmod' and uses `a=rwx' (read, write and execute allowed for
+ everyone) minus the bits set in the umask for the point of the
+ departure. *Note File permissions::.
+
+`-p'
+`--parents'
+ Make any missing parent directories for each argument. The mode
+ for parent directories is set to the umask modified by `u+wx'.
+ Ignore arguments corresponding to existing directories.
+
+`-v'
+
+`--verbose'
+ Print a message for each created directory. This is most useful
+ with `--parents'.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: mkfifo invocation, Next: mknod invocation, Prev: mkdir invocation, Up: Special file types
+
+12.4 `mkfifo': Make FIFOs (named pipes)
+=======================================
+
+`mkfifo' creates FIFOs (also called "named pipes") with the specified
+names. Synopsis:
+
+ mkfifo [OPTION] NAME...
+
+ A "FIFO" is a special file type that permits independent processes
+to communicate. One process opens the FIFO file for writing, and
+another for reading, after which data can flow as with the usual
+anonymous pipe in shells or elsewhere.
+
+ The program accepts the following option. Also see *Note Common
+options::.
+
+`-m MODE'
+`--mode=MODE'
+ Set the mode of created FIFOs to MODE, which is symbolic as in
+ `chmod' and uses `a=rw' (read and write allowed for everyone) minus
+ the bits set in the umask for the point of departure. *Note File
+ permissions::.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: mknod invocation, Next: readlink invocation, Prev: mkfifo invocation, Up: Special file types
+
+12.5 `mknod': Make block or character special files
+===================================================
+
+`mknod' creates a FIFO, character special file, or block special file
+with the specified name. Synopsis:
+
+ mknod [OPTION]... NAME TYPE [MAJOR MINOR]
+
+ Unlike the phrase "special file type" above, the term "special file"
+has a technical meaning on Unix: something that can generate or receive
+data. Usually this corresponds to a physical piece of hardware, e.g.,
+a printer or a disk. (These files are typically created at
+system-configuration time.) The `mknod' command is what creates files
+of this type. Such devices can be read either a character at a time or
+a "block" (many characters) at a time, hence we say there are "block
+special" files and "character special" files.
+
+ The arguments after NAME specify the type of file to make:
+
+`p'
+ for a FIFO
+
+`b'
+ for a block special file
+
+`c'
+ for a character special file
+
+
+ When making a block or character special file, the major and minor
+device numbers must be given after the file type. If a major or minor
+device number begins with `0x' or `0X', it is interpreted as
+hexadecimal; otherwise, if it begins with `0', as octal; otherwise, as
+decimal.
+
+ The program accepts the following option. Also see *Note Common
+options::.
+
+`-m MODE'
+`--mode=MODE'
+ Set the mode of created files to MODE, which is symbolic as in
+ `chmod' and uses `a=rw' minus the bits set in the umask as the
+ point of departure. *Note File permissions::.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: readlink invocation, Next: rmdir invocation, Prev: mknod invocation, Up: Special file types
+
+12.6 `readlink': Print the referent of a symbolic link
+======================================================
+
+`readlink' may work in one of two supported modes:
+
+`Readlink mode'
+ `readlink' outputs the value of the given symbolic link. If
+ `readlink' is invoked with an argument other than the name of a
+ symbolic link, it produces no output and exits with a nonzero exit
+ code.
+
+`Canonicalize mode'
+ `readlink' outputs the absolute name of the given file which
+ contains no `.', `..' components nor any repeated separators (`/')
+ or symbolic links.
+
+
+ readlink [OPTION] FILE
+
+ By default, `readlink' operates in readlink mode.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-f'
+`--canonicalize'
+ Activate canonicalize mode. If any path component except the last
+ one is missing or unavailable, `readlink' produces no output and
+ exits with a nonzero exit code.
+
+`-e'
+`--canonicalize-existing'
+ Activate canonicalize mode. If any path component is missing or
+ unavailable, `readlink' produces no output and exits with a
+ nonzero exit code.
+
+`-m'
+`--canonicalize-missing'
+ Activate canonicalize mode. If any path component is missing or
+ unavailable, `readlink' treats it as a directory.
+
+`-n'
+`--no-newline'
+ Do not output the trailing newline.
+
+`-s'
+`-q'
+`--silent'
+`--quiet'
+ Suppress most error messages.
+
+`-v'
+`--verbose'
+ Report error messages.
+
+
+ The `readlink' utility first appeared in OpenBSD 2.1.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: rmdir invocation, Next: unlink invocation, Prev: readlink invocation, Up: Special file types
+
+12.7 `rmdir': Remove empty directories
+======================================
+
+`rmdir' removes empty directories. Synopsis:
+
+ rmdir [OPTION]... DIRECTORY...
+
+ If any DIRECTORY argument does not refer to an existing empty
+directory, it is an error.
+
+ The program accepts the following option. Also see *Note Common
+options::.
+
+`--ignore-fail-on-non-empty'
+ Ignore each failure to remove a directory that is solely because
+ the directory is non-empty.
+
+`-p'
+`--parents'
+ Remove DIRECTORY, then try to remove each component of DIRECTORY.
+ So, for example, `rmdir -p a/b/c' is similar to `rmdir a/b/c a/b
+ a'. As such, it fails if any of those directories turns out not
+ to be empty. Use the `--ignore-fail-on-non-empty' option to make
+ it so such a failure does not evoke a diagnostic and does not
+ cause `rmdir' to exit unsuccessfully.
+
+`-v'
+
+`--verbose'
+ Give a diagnostic for each successful removal. DIRECTORY is
+ removed.
+
+
+ *Note rm invocation::, for how to remove non-empty directories
+(recursively).
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: unlink invocation, Prev: rmdir invocation, Up: Special file types
+
+12.8 `unlink': Remove files via the unlink syscall
+==================================================
+
+`unlink' deletes a single specified file name. It is a minimalist
+interface to the system-provided `unlink' function. *Note Deleting
+Files: (libc)Deleting Files. Synopsis: It avoids the bells and
+whistles of the more commonly-used `rm' command (*note rm invocation::).
+
+ unlink FILENAME
+
+ On some systems `unlink' can be used to delete the name of a
+directory. On others, it can be used that way only by a privileged
+user. In the GNU system `unlink' can never delete the name of a
+directory.
+
+ The `unlink' command honors the `--help' and `--version' options.
+To remove a file whose name begins with `-', prefix the name with `./',
+e.g., `unlink ./--help'.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Changing file attributes, Next: Disk usage, Prev: Special file types, Up: Top
+
+13 Changing file attributes
+***************************
+
+A file is not merely its contents, a name, and a file type (*note
+Special file types::). A file also has an owner (a userid), a group (a
+group id), permissions (what the owner can do with the file, what
+people in the group can do, and what everyone else can do), various
+timestamps, and other information. Collectively, we call these a file's
+"attributes".
+
+ These commands change file attributes.
+
+* Menu:
+
+* chgrp invocation:: Change file groups.
+* chmod invocation:: Change access permissions.
+* chown invocation:: Change file owners and groups.
+* touch invocation:: Change file timestamps.
+
+
+File: coreutils.info, Node: chown invocation, Next: touch invocation, Prev: chmod invocation, Up: Changing file attributes
+
+13.1 `chown': Change file owner and group
+=========================================
+
+`chown' changes the user and/or group ownership of each given FILE to
+NEW-OWNER or to the user and group of an existing reference file.
+Synopsis:
+
+ chown [OPTION]... {NEW-OWNER | --reference=REF_FILE} FILE...
+
+ If used, NEW-OWNER specifies the new owner and/or group as follows
+(with no embedded white space):
+
+ [OWNER] [ : [GROUP] ]
+
+ Specifically:
+
+OWNER
+ If only an OWNER (a user name or numeric user id) is given, that
+ user is made the owner of each given file, and the files' group is
+ not changed.
+
+OWNER`:'GROUP
+ If the OWNER is followed by a colon and a GROUP (a group name or
+ numeric group id), with no spaces between them, the group
+ ownership of the files is changed as well (to GROUP).
+
+OWNER`:'
+ If a colon but no group name follows OWNER, that user is made the
+ owner of the files and the group of the files is changed to
+ OWNER's login group.
+
+`:'GROUP
+ If the colon and following GROUP are given, but the owner is
+ omitted, only the group of the files is changed; in this case,
+ `chown' performs the same function as `chgrp'.
+
+`:'
+ If only a colon is given, or if NEW-OWNER is empty, neither the
+ owner nor the group is changed.
+
+
+ Some older scripts may still use `.' in place of the `:' separator.
+POSIX 1003.1-2001 (*note Standards conformance::) does not require
+support for that, but for backward compatibility GNU `chown' supports
+`.' so long as no ambiguity results. New scripts should avoid the use
+of `.' because it is not portable, and because it has undesirable
+results if the entire OWNER`.'GROUP happens to identify a user whose
+name contains `.'.
+
+ The `chown' command sometimes clears the set-user-ID or set-group-ID
+permission bits. This behavior depends on the policy and functionality
+of the underlying `chown' system call, which may make system-dependent
+file mode modifications outside the control of the `chown' command.
+For example, the `chown' command might not affect those bits when
+operated as the superuser, or if the bits signify some function other
+than executable permission (e.g., mandatory locking). When in doubt,
+check the underlying system behavior.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-c'
+`--changes'
+ Verbosely describe the action for each FILE whose ownership
+ actually changes.
+
+`-f'
+`--silent'
+`--quiet'
+ Do not print error messages about files whose ownership cannot be
+ changed.
+
+`--from=OLD-OWNER'
+ Change a FILE's ownership only if it has current attributes
+ specified by OLD-OWNER. OLD-OWNER has the same form as NEW-OWNER
+ described above. This option is useful primarily from a security
+ standpoint in that it narrows considerably the window of potential
+ abuse. For example, to reflect a UID numbering change for one
+ user's files without an option like this, `root' might run
+
+ find / -owner OLDUSER -print0 | xargs -0 chown -h NEWUSER
+
+ But that is dangerous because the interval between when the `find'
+ tests the existing file's owner and when the `chown' is actually
+ run may be quite large. One way to narrow the gap would be to
+ invoke chown for each file as it is found:
+
+ find / -owner OLDUSER -exec chown -h NEWUSER {} \;
+
+ But that is very slow if there are many affected files. With this
+ option, it is safer (the gap is narrower still) though still not
+ perfect:
+
+ chown -h -R --from=OLDUSER NEWUSER /
+
+`--dereference'
+ Do not act on symbolic links themselves but rather on what they
+ point to. This is the default.
+
+`-h'
+`--no-dereference'
+ Act on symbolic links themselves instead of what they point to.
+ This mode relies on the `lchown' system call. On systems that do
+ not provide the `lchown' system call, `chown' fails when a file
+ specified on the command line is a symbolic link. By default, no
+ diagnostic is issued for symbolic links encountered during a
+ recursive traversal, but see `--verbose'.
+
+`--preserve-root'
+ Fail upon any attempt to recursively change the file system root,
+ `/'. Without `--recursive', this option has no effect. *Note
+ Treating / specially::.
+
+`--no-preserve-root'
+ Cancel the effect of any preceding `--preserve-root' option.
+ *Note Treating / specially::.
+
+`--reference=REF_FILE'
+ Change the user and group of each FILE to be the same as those of
+ REF_FILE. If REF_FILE is a symbolic link, do not use the user and
+ group of the symbolic link, but rather those of the file it refers
+ to.
+
+`-v'
+`--verbose'
+ Output a diagnostic for every file processed. If a symbolic link
+ is encountered during a recursive traversal on a system without
+ the `lchown' system call, and `--no-dereference' is in effect,
+ then issue a diagnostic saying neither the symbolic link nor its
+ referent is being changed.
+
+`-R'
+`--recursive'
+ Recursively change ownership of directories and their contents.
+
+`-H'
+ If `--recursive' (`-R') is specified and a command line argument
+ is a symbolic link to a directory, traverse it. *Note Traversing
+ symlinks::.
+
+`-L'
+ In a recursive traversal, traverse every symbolic link to a
+ directory that is encountered. *Note Traversing symlinks::.
+
+`-P'
+ Do not traverse any symbolic links. This is the default if none
+ of `-H', `-L', or `-P' is specified. *Note Traversing symlinks::.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: chgrp invocation, Next: chmod invocation, Up: Changing file attributes
+
+13.2 `chgrp': Change group ownership
+====================================
+
+`chgrp' changes the group ownership of each given FILE to GROUP (which
+can be either a group name or a numeric group id) or to the group of an
+existing reference file. Synopsis:
+
+ chgrp [OPTION]... {GROUP | --reference=REF_FILE} FILE...
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-c'
+`--changes'
+ Verbosely describe the action for each FILE whose group actually
+ changes.
+
+`-f'
+`--silent'
+`--quiet'
+ Do not print error messages about files whose group cannot be
+ changed.
+
+`--dereference'
+ Do not act on symbolic links themselves but rather on what they
+ point to. This is the default.
+
+`-h'
+`--no-dereference'
+ Act on symbolic links themselves instead of what they point to.
+ This mode relies on the `lchown' system call. On systems that do
+ not provide the `lchown' system call, `chgrp' fails when a file
+ specified on the command line is a symbolic link. By default, no
+ diagnostic is issued for symbolic links encountered during a
+ recursive traversal, but see `--verbose'.
+
+`--preserve-root'
+ Fail upon any attempt to recursively change the file system root,
+ `/'. Without `--recursive', this option has no effect. *Note
+ Treating / specially::.
+
+`--no-preserve-root'
+ Cancel the effect of any preceding `--preserve-root' option.
+ *Note Treating / specially::.
+
+`--reference=REF_FILE'
+ Change the group of each FILE to be the same as that of REF_FILE.
+ If REF_FILE is a symbolic link, do not use the group of the
+ symbolic link, but rather that of the file it refers to.
+
+`-v'
+`--verbose'
+ Output a diagnostic for every file processed. If a symbolic link
+ is encountered during a recursive traversal on a system without
+ the `lchown' system call, and `--no-dereference' is in effect,
+ then issue a diagnostic saying neither the symbolic link nor its
+ referent is being changed.
+
+`-R'
+`--recursive'
+ Recursively change the group ownership of directories and their
+ contents.
+
+`-H'
+ If `--recursive' (`-R') is specified and a command line argument
+ is a symbolic link to a directory, traverse it. *Note Traversing
+ symlinks::.
+
+`-L'
+ In a recursive traversal, traverse every symbolic link to a
+ directory that is encountered. *Note Traversing symlinks::.
+
+`-P'
+ Do not traverse any symbolic links. This is the default if none
+ of `-H', `-L', or `-P' is specified. *Note Traversing symlinks::.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: chmod invocation, Next: chown invocation, Prev: chgrp invocation, Up: Changing file attributes
+
+13.3 `chmod': Change access permissions
+=======================================
+
+`chmod' changes the access permissions of the named files. Synopsis:
+
+ chmod [OPTION]... {MODE | --reference=REF_FILE} FILE...
+
+ `chmod' never changes the permissions of symbolic links, since the
+`chmod' system call cannot change their permissions. This is not a
+problem since the permissions of symbolic links are never used.
+However, for each symbolic link listed on the command line, `chmod'
+changes the permissions of the pointed-to file. In contrast, `chmod'
+ignores symbolic links encountered during recursive directory
+traversals.
+
+ If used, MODE specifies the new permissions. For details, see the
+section on *Note File permissions::. In the extremely rare cases where
+MODE has leading `-', a portable script should use `--' first, e.g.,
+`chmod -- -w file'. Typically, though, `chmod a-w file' is preferable.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-c'
+`--changes'
+ Verbosely describe the action for each FILE whose permissions
+ actually changes.
+
+`-f'
+`--silent'
+`--quiet'
+ Do not print error messages about files whose permissions cannot be
+ changed.
+
+`--preserve-root'
+ Fail upon any attempt to recursively change the file system root,
+ `/'. Without `--recursive', this option has no effect. *Note
+ Treating / specially::.
+
+`--no-preserve-root'
+ Cancel the effect of any preceding `--preserve-root' option.
+ *Note Treating / specially::.
+
+`-v'
+`--verbose'
+ Verbosely describe the action or non-action taken for every FILE.
+
+`--reference=REF_FILE'
+ Change the mode of each FILE to be the same as that of REF_FILE.
+ *Note File permissions::. If REF_FILE is a symbolic link, do not
+ use the mode of the symbolic link, but rather that of the file it
+ refers to.
+
+`-R'
+`--recursive'
+ Recursively change permissions of directories and their contents.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: touch invocation, Prev: chown invocation, Up: Changing file attributes
+
+13.4 `touch': Change file timestamps
+====================================
+
+`touch' changes the access and/or modification times of the specified
+files. Synopsis:
+
+ touch [OPTION]... FILE...
+
+ On older systems, `touch' supports an obsolete syntax, as follows.
+If the first FILE would be a valid argument to the `-t' option and no
+timestamp is given with any of the `-d', `-r', or `-t' options and the
+`--' argument is not given, that argument is interpreted as the time
+for the other files instead of as a file name. POSIX 1003.1-2001
+(*note Standards conformance::) does not allow this; use `-t' instead.
+
+ Any FILE that does not exist is created empty.
+
+ If changing both the access and modification times to the current
+time, `touch' can change the timestamps for files that the user running
+it does not own but has write permission for. Otherwise, the user must
+own the files.
+
+ Although `touch' provides options for changing two of the times--the
+times of last access and modification--of a file, there is actually a
+third one as well: the inode change time. This is often referred to as
+a file's `ctime'. The inode change time represents the time when the
+file's meta-information last changed. One common example of this is
+when the permissions of a file change. Changing the permissions
+doesn't access the file, so the atime doesn't change, nor does it
+modify the file, so the mtime doesn't change. Yet, something about the
+file itself has changed, and this must be noted somewhere. This is the
+job of the ctime field. This is necessary, so that, for example, a
+backup program can make a fresh copy of the file, including the new
+permissions value. Another operation that modifies a file's ctime
+without affecting the others is renaming. In any case, it is not
+possible, in normal operations, for a user to change the ctime field to
+a user-specified value.
+
+ Time stamps assume the time zone rules specified by the `TZ'
+environment variable, or by the system default rules if `TZ' is not
+set. *Note Specifying the Time Zone with `TZ': (libc)TZ Variable. You
+can avoid avoid ambiguities during daylight saving transitions by using
+UTC time stamps.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-a'
+`--time=atime'
+`--time=access'
+`--time=use'
+ Change the access time only.
+
+`-c'
+`--no-create'
+ Do not create files that do not exist.
+
+`-d'
+`--date=TIME'
+ Use TIME instead of the current time. It can contain month names,
+ time zones, `am' and `pm', `yesterday', etc. For example,
+ `--date="2004-02-27 14:19:13.489392193 +0530"' specifies the
+ instant of time that is 489,392,193 nanoseconds after February 27,
+ 2004 at 2:19:13 PM in a time zone that is 5 hours and 30 minutes
+ east of UTC. *Note Date input formats::. File systems that do
+ not support high-resolution time stamps silently ignore any excess
+ precision here.
+
+`-f'
+ Ignored; for compatibility with BSD versions of `touch'.
+
+`-m'
+`--time=mtime'
+`--time=modify'
+ Change the modification time only.
+
+`-r FILE'
+`--reference=FILE'
+ Use the times of the reference FILE instead of the current time.
+ If this option is combined with the `--date=TIME' (`-d TIME')
+ option, the reference FILE's time is the origin for any relative
+ TIMEs given, but is otherwise ignored. For example, `-r foo -d
+ '-5 seconds'' specifies a time stamp equal to five seconds before
+ the corresponding time stamp for `foo'.
+
+`-t [[CC]YY]MMDDhhmm[.ss]'
+ Use the argument (optional four-digit or two-digit years, months,
+ days, hours, minutes, optional seconds) instead of the current
+ time. If the year is specified with only two digits, then CC is
+ 20 for years in the range 0 ... 68, and 19 for years in 69 ... 99.
+ If no digits of the year are specified, the argument is
+ interpreted as a date in the current year.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Disk usage, Next: Printing text, Prev: Changing file attributes, Up: Top
+
+14 Disk usage
+*************
+
+No disk can hold an infinite amount of data. These commands report on
+how much disk storage is in use or available. (This has nothing much to
+do with how much _main memory_, i.e., RAM, a program is using when it
+runs; for that, you want `ps' or `pstat' or `swap' or some such
+command.)
+
+* Menu:
+
+* df invocation:: Report file system disk space usage.
+* du invocation:: Estimate file space usage.
+* stat invocation:: Report file or file system status.
+* sync invocation:: Synchronize memory and disk.
+
+
+File: coreutils.info, Node: df invocation, Next: du invocation, Up: Disk usage
+
+14.1 `df': Report file system disk space usage
+==============================================
+
+`df' reports the amount of disk space used and available on file
+systems. Synopsis:
+
+ df [OPTION]... [FILE]...
+
+ With no arguments, `df' reports the space used and available on all
+currently mounted file systems (of all types). Otherwise, `df' reports
+on the file system containing each argument FILE.
+
+ Normally the disk space is printed in units of 1024 bytes, but this
+can be overridden (*note Block size::). Non-integer quantities are
+rounded up to the next higher unit.
+
+ If an argument FILE is a disk device file containing a mounted file
+system, `df' shows the space available on that file system rather than
+on the file system containing the device node (i.e., the root file
+system). GNU `df' does not attempt to determine the disk usage on
+unmounted file systems, because on most kinds of systems doing so
+requires extremely nonportable intimate knowledge of file system
+structures.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-a'
+`--all'
+ Include in the listing file systems that have a size of 0 blocks,
+ which are omitted by default. Such file systems are typically
+ special-purpose pseudo-file-systems, such as automounter entries.
+ Also, file systems of type "ignore" or "auto", supported by some
+ operating systems, are only included if this option is specified.
+
+`-B SIZE'
+`--block-size=SIZE'
+ Scale sizes by SIZE before printing them (*note Block size::).
+ For example, `-BG' prints sizes in units of 1,073,741,824 bytes.
+
+`-h'
+`--human-readable'
+ Append a size letter to each size, such as `M' for mebibytes.
+ Powers of 1024 are used, not 1000; `M' stands for 1,048,576 bytes.
+ Use the `--si' option if you prefer powers of 1000.
+
+`-H'
+ Equivalent to `--si'.
+
+`-i'
+`--inodes'
+ List inode usage information instead of block usage. An inode
+ (short for index node) contains information about a file such as
+ its owner, permissions, timestamps, and location on the disk.
+
+`-k'
+ Print sizes in 1024-byte blocks, overriding the default block size
+ (*note Block size::). This option is equivalent to
+ `--block-size=1K'.
+
+`-l'
+`--local'
+ Limit the listing to local file systems. By default, remote file
+ systems are also listed.
+
+`--no-sync'
+ Do not invoke the `sync' system call before getting any usage data.
+ This may make `df' run significantly faster on systems with many
+ disks, but on some systems (notably SunOS) the results may be
+ slightly out of date. This is the default.
+
+`-P'
+`--portability'
+ Use the POSIX output format. This is like the default format
+ except for the following:
+
+ 1. The information about each file system is always printed on
+ exactly one line; a mount device is never put on a line by
+ itself. This means that if the mount device name is more
+ than 20 characters long (e.g., for some network mounts), the
+ columns are misaligned.
+
+ 2. The labels in the header output line are changed to conform
+ to POSIX.
+
+`--si'
+ Append an SI-style abbreviation to each size, such as `MB' for
+ megabytes. Powers of 1000 are used, not 1024; `MB' stands for
+ 1,000,000 bytes. This option is equivalent to `--block-size=si'.
+ Use the `-h' or `--human-readable' option if you prefer powers of
+ 1024.
+
+`--sync'
+ Invoke the `sync' system call before getting any usage data. On
+ some systems (notably SunOS), doing this yields more up to date
+ results, but in general this option makes `df' much slower,
+ especially when there are many or very busy file systems.
+
+`-t FSTYPE'
+`--type=FSTYPE'
+ Limit the listing to file systems of type FSTYPE. Multiple file
+ system types can be specified by giving multiple `-t' options. By
+ default, nothing is omitted.
+
+`-T'
+`--print-type'
+ Print each file system's type. The types printed here are the
+ same ones you can include or exclude with `-t' and `-x'. The
+ particular types printed are whatever is supported by the system.
+ Here are some of the common names (this list is certainly not
+ exhaustive):
+
+ `nfs'
+ An NFS file system, i.e., one mounted over a network from
+ another machine. This is the one type name which seems to be
+ used uniformly by all systems.
+
+ `4.2, ufs, efs...'
+ A file system on a locally-mounted hard disk. (The system
+ might even support more than one type here; Linux does.)
+
+ `hsfs, cdfs'
+ A file system on a CD-ROM drive. HP-UX uses `cdfs', most
+ other systems use `hsfs' (`hs' for "High Sierra").
+
+ `pcfs'
+ An MS-DOS file system, usually on a diskette.
+
+
+`-x FSTYPE'
+`--exclude-type=FSTYPE'
+ Limit the listing to file systems not of type FSTYPE. Multiple
+ file system types can be eliminated by giving multiple `-x'
+ options. By default, no file system types are omitted.
+
+`-v'
+ Ignored; for compatibility with System V versions of `df'.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: du invocation, Next: stat invocation, Prev: df invocation, Up: Disk usage
+
+14.2 `du': Estimate file space usage
+====================================
+
+`du' reports the amount of disk space used by the specified files and
+for each subdirectory (of directory arguments). Synopsis:
+
+ du [OPTION]... [FILE]...
+
+ With no arguments, `du' reports the disk space for the current
+directory. Normally the disk space is printed in units of 1024 bytes,
+but this can be overridden (*note Block size::). Non-integer
+quantities are rounded up to the next higher unit.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-a'
+`--all'
+ Show counts for all files, not just directories.
+
+`--apparent-size'
+ Print apparent sizes, rather than disk usage. The apparent size
+ of a file is the number of bytes reported by `wc -c' on regular
+ files, or more generally, `ls -l --block-size=1' or `stat
+ --format=%s'. For example, a file containing the word `zoo' with
+ no newline would, of course, have an apparent size of 3. Such a
+ small file may require anywhere from 0 to 16 KiB or more of disk
+ space, depending on the type and configuration of the file system
+ on which the file resides. However, a sparse file created with
+ this command:
+
+ dd bs=1 seek=2GiB if=/dev/null of=big
+
+ has an apparent size of 2 GiB, yet on most modern systems, it
+ actually uses almost no disk space.
+
+`-b'
+`--bytes'
+ Equivalent to `--apparent-size --block-size=1'.
+
+`-B SIZE'
+`--block-size=SIZE'
+ Scale sizes by SIZE before printing them (*note Block size::).
+ For example, `-BG' prints sizes in units of 1,073,741,824 bytes.
+
+`-c'
+`--total'
+ Print a grand total of all arguments after all arguments have been
+ processed. This can be used to find out the total disk usage of a
+ given set of files or directories.
+
+`-D'
+`--dereference-args'
+ Dereference symbolic links that are command line arguments. Does
+ not affect other symbolic links. This is helpful for finding out
+ the disk usage of directories, such as `/usr/tmp', which are often
+ symbolic links.
+
+`--files0-from=FILE'
+ Rather than processing files named on the command line, process
+ those in the NUL-terminated list in file FILE. This is useful
+ with the `--total' (`-c') option when the list of file names is so
+ long that it may exceed a command line length limitation. In such
+ cases, running `du' via `xargs' is undesirable because it splits
+ the list into pieces and makes `du' print a total for each sublist
+ rather than for the entire list. One way to produce a list of
+ NUL-terminated file names is with GNU `find', using its `-print0'
+ predicate. Do not specify any FILE on the command line when using
+ this option.
+
+`-h'
+`--human-readable'
+ Append a size letter to each size, such as `M' for mebibytes.
+ Powers of 1024 are used, not 1000; `M' stands for 1,048,576 bytes.
+ Use the `--si' option if you prefer powers of 1000.
+
+`-H'
+ Currently, `-H' is the same as `--si', except that `-H' evokes a
+ warning. This option will be changed to be equivalent to
+ `--dereference-args' (`-D').
+
+`-k'
+ Print sizes in 1024-byte blocks, overriding the default block size
+ (*note Block size::). This option is equivalent to
+ `--block-size=1K'.
+
+`-l'
+`--count-links'
+ Count the size of all files, even if they have appeared already
+ (as a hard link).
+
+`-L'
+`--dereference'
+ Dereference symbolic links (show the disk space used by the file
+ or directory that the link points to instead of the space used by
+ the link).
+
+`-P'
+`--no-dereference'
+ For each symbolic links encountered by `du', consider the disk
+ space used by the symbolic link.
+
+`--max-depth=DEPTH'
+ Show the total for each directory (and file if -all) that is at
+ most MAX_DEPTH levels down from the root of the hierarchy. The
+ root is at level 0, so `du --max-depth=0' is equivalent to `du -s'.
+
+`-0'
+`--null'
+ Output the zero byte (NUL) at the end of each line, rather than a
+ newline. This option enables other programs to parse the output
+ of `du' even when that output would contain file names with
+ embedded newlines.
+
+`--si'
+ Append an SI-style abbreviation to each size, such as `MB' for
+ megabytes. Powers of 1000 are used, not 1024; `MB' stands for
+ 1,000,000 bytes. Use the `-h' or `--human-readable' option if you
+ prefer powers of 1024.
+
+`-s'
+`--summarize'
+ Display only a total for each argument.
+
+`-S'
+`--separate-dirs'
+ Report the size of each directory separately, not including the
+ sizes of subdirectories.
+
+`-x'
+`--one-file-system'
+ Skip directories that are on different file systems from the one
+ that the argument being processed is on.
+
+`--exclude=PATTERN'
+ When recursing, skip subdirectories or files matching PATTERN.
+ For example, `du --exclude='*.o'' excludes files whose names end
+ in `.o'.
+
+`-X FILE'
+`--exclude-from=FILE'
+ Like `--exclude', except take the patterns to exclude from FILE,
+ one per line. If FILE is `-', take the patterns from standard
+ input.
+
+
+ On BSD systems, `du' reports sizes that are half the correct values
+for files that are NFS-mounted from HP-UX systems. On HP-UX systems,
+it reports sizes that are twice the correct values for files that are
+NFS-mounted from BSD systems. This is due to a flaw in HP-UX; it also
+affects the HP-UX `du' program.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: stat invocation, Next: sync invocation, Prev: du invocation, Up: Disk usage
+
+14.3 `stat': Report file or file system status
+==============================================
+
+`stat' displays information about the specified file(s). Synopsis:
+
+ stat [OPTION]... [FILE]...
+
+ With no option, `stat' reports all information about the given files.
+But it also can be used to report the information of the file systems
+the given files are located on. If the files are links, `stat' can
+also give information about the files the links point to.
+
+`-f'
+`--file-system'
+ Report information about the file systems where the given files
+ are located instead of information about the files themselves.
+
+`-L'
+`--dereference'
+ Change how `stat' treats symbolic links. With this option, `stat'
+ acts on the file referenced by each symbolic link argument.
+ Without it, `stat' acts on any symbolic link argument directly.
+
+`-t'
+`--terse'
+ Print the information in terse form, suitable for parsing by other
+ programs.
+
+`-c'
+`--format=FORMAT'
+ Use FORMAT rather than the default format.
+
+ Interpreted sequences for file stat are:
+
+ * %a - Access rights in octal
+
+ * %A - Access rights in human readable form
+
+ * %b - Number of blocks allocated (see `%B')
+
+ * %B - The size in bytes of each block reported by `%b'
+
+ * %d - Device number in decimal
+
+ * %D - Device number in hex
+
+ * %f - raw mode in hex
+
+ * %F - File type
+
+ * %g - Group Id of owner
+
+ * %G - Group name of owner
+
+ * %h - Number of hard links
+
+ * %i - Inode number
+
+ * %n - File name
+
+ * %N - Quoted File name with dereference if symbolic link
+
+ * %o - I/O block size
+
+ * %s - Total size, in bytes
+
+ * %t - Major device type in hex
+
+ * %T - Minor device type in hex
+
+ * %u - User Id of owner
+
+ * %U - User name of owner
+
+ * %x - Time of last access
+
+ * %X - Time of last access as seconds since Epoch
+
+ * %y - Time of last modification
+
+ * %Y - Time of last modification as seconds since Epoch
+
+ * %z - Time of last change
+
+ * %Z - Time of last change as seconds since Epoch
+
+ Interpreted sequences for file system stat are:
+
+ * %n - File name
+
+ * %i - File System id in hex
+
+ * %l - Maximum length of file names
+
+ * %t - Type in hex
+
+ * %T - Type in human readable form
+
+ * %b - Total data blocks in file system
+
+ * %f - Free blocks in file system
+
+ * %a - Free blocks available to non-superuser
+
+ * %s - Optimal transfer block size
+
+ * %c - Total file nodes in file system
+
+ Time stamps are listed according to the time zone rules specified
+ by the `TZ' environment variable, or by the system default rules if
+ `TZ' is not set. *Note Specifying the Time Zone with `TZ':
+ (libc)TZ Variable.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: sync invocation, Prev: stat invocation, Up: Disk usage
+
+14.4 `sync': Synchronize data on disk with memory
+=================================================
+
+`sync' writes any data buffered in memory out to disk. This can
+include (but is not limited to) modified superblocks, modified inodes,
+and delayed reads and writes. This must be implemented by the kernel;
+The `sync' program does nothing but exercise the `sync' system call.
+
+ The kernel keeps data in memory to avoid doing (relatively slow) disk
+reads and writes. This improves performance, but if the computer
+crashes, data may be lost or the file system corrupted as a result.
+The `sync' command ensures everything in memory is written to disk.
+
+ Any arguments are ignored, except for a lone `--help' or `--version'
+(*note Common options::).
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Printing text, Next: Conditions, Prev: Disk usage, Up: Top
+
+15 Printing text
+****************
+
+This section describes commands that display text strings.
+
+* Menu:
+
+* echo invocation:: Print a line of text.
+* printf invocation:: Format and print data.
+* yes invocation:: Print a string until interrupted.
+
+
+File: coreutils.info, Node: echo invocation, Next: printf invocation, Up: Printing text
+
+15.1 `echo': Print a line of text
+=================================
+
+`echo' writes each given STRING to standard output, with a space
+between each and a newline after the last one. Synopsis:
+
+ echo [OPTION]... [STRING]...
+
+ The program accepts the following options. Also see *Note Common
+options::. Options must precede operands, and the normally-special
+argument `--' has no special meaning and is treated like any other
+STRING.
+
+`-n'
+ Do not output the trailing newline.
+
+`-e'
+ Enable interpretation of the following backslash-escaped
+ characters in each STRING:
+
+ `\a'
+ alert (bell)
+
+ `\b'
+ backspace
+
+ `\c'
+ suppress trailing newline
+
+ `\f'
+ form feed
+
+ `\n'
+ new line
+
+ `\r'
+ carriage return
+
+ `\t'
+ horizontal tab
+
+ `\v'
+ vertical tab
+
+ `\\'
+ backslash
+
+ `\0NNN'
+ the eight-bit value that is the octal number NNN (zero to
+ three octal digits)
+
+ `\NNN'
+ the eight-bit value that is the octal number NNN (one to
+ three octal digits)
+
+ `\xHH'
+ the eight-bit value that is the hexadecimal number HH (one or
+ two hexadecimal digits)
+
+`-E'
+ Disable interpretation of backslash escapes in each STRING. This
+ is the default. If `-e' and `-E' are both specified, the last one
+ given takes effect.
+
+
+ If the `POSIXLY_CORRECT' environment variable is set, then when
+`echo''s first argument is not `-n' it outputs option-like arguments
+instead of treating them as options. For example, `echo -ne hello'
+outputs `-ne hello' instead of plain `hello'.
+
+ POSIX does not require support for any options, and says that the
+behavior of `echo' is implementation-defined if any STRING contains a
+backslash or if the first argument is `-n'. Portable programs can use
+the `printf' command if they need to omit trailing newlines or output
+control characters or backslashes. *Note printf invocation::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: printf invocation, Next: yes invocation, Prev: echo invocation, Up: Printing text
+
+15.2 `printf': Format and print data
+====================================
+
+`printf' does formatted printing of text. Synopsis:
+
+ printf FORMAT [ARGUMENT]...
+
+ `printf' prints the FORMAT string, interpreting `%' directives and
+`\' escapes to format numeric and string arguments in a way that is
+mostly similar to the C `printf' function. The differences are as
+follows:
+
+ * The FORMAT argument is reused as necessary to convert all the
+ given ARGUMENTs. For example, the command `printf %s a b' outputs
+ `ab'.
+
+ * Missing ARGUMENTs are treated as null strings or as zeros,
+ depending on whether the context expects a string or a number. For
+ example, the command `printf %sx%d' prints `x0'.
+
+ * An additional escape, `\c', causes `printf' to produce no further
+ output. For example, the command `printf 'A%sC\cD%sF' B E' prints
+ `ABC'.
+
+ * The hexadecimal escape sequence `\xHH' has at most two digits, as
+ opposed to C where it can have an unlimited number of digits. For
+ example, the command `printf '\x07e'' prints two bytes, whereas
+ the C statement `printf ("\x07e")' prints just one.
+
+ * `printf' has an additional directive, `%b', which prints its
+ argument string with `\' escapes interpreted in the same way as in
+ the FORMAT string, except that octal escapes are of the form
+ `\0OOO' where OOO is 0 to 3 octal digits. If a precision is also
+ given, it limits the number of bytes printed from the converted
+ string.
+
+ * Numeric arguments must be single C constants, possibly with leading
+ `+' or `-'. For example, `printf %.4d -3' outputs `-0003'.
+
+ * If the leading character of a numeric argument is `"' or `'' then
+ its value is the numeric value of the immediately following
+ character. Any remaining characters are silently ignored if the
+ `POSIXLY_CORRECT' environment variable is set; otherwise, a
+ warning is printed. For example, `printf "%d" "'a"' outputs `97'
+ on hosts that use the ASCII character set, since `a' has the
+ numeric value 97 in ASCII.
+
+
+ A floating-point argument must use a period before any fractional
+digits, but is printed according to the `LC_NUMERIC' category of the
+current locale. For example, in a locale whose radix character is a
+comma, the command `printf %g 3.14' outputs `3,14' whereas the command
+`printf %g 3,14' is an error.
+
+ `printf' interprets `\OOO' in FORMAT as an octal number (if OOO is 1
+to 3 octal digits) specifying a character to print, and `\xHH' as a
+hexadecimal number (if HH is 1 to 2 hex digits) specifying a character
+to print.
+
+ `printf' interprets two character syntaxes introduced in ISO C 99:
+`\u' for 16-bit Unicode (ISO/IEC 10646) characters, specified as four
+hexadecimal digits HHHH, and `\U' for 32-bit Unicode characters,
+specified as eight hexadecimal digits HHHHHHHH. `printf' outputs the
+Unicode characters according to the `LC_CTYPE' locale.
+
+ The processing of `\u' and `\U' requires a full-featured `iconv'
+facility. It is activated on systems with glibc 2.2 (or newer), or
+when `libiconv' is installed prior to this package. Otherwise `\u' and
+`\U' will print as-is.
+
+ The only options are a lone `--help' or `--version'. *Note Common
+options::. Options must precede operands.
+
+ The Unicode character syntaxes are useful for writing strings in a
+locale independent way. For example, a string containing the Euro
+currency symbol
+
+ $ /usr/local/bin/printf '\u20AC 14.95'
+
+will be output correctly in all locales supporting the Euro symbol
+(ISO-8859-15, UTF-8, and others). Similarly, a Chinese string
+
+ $ /usr/local/bin/printf '\u4e2d\u6587'
+
+will be output correctly in all Chinese locales (GB2312, BIG5, UTF-8,
+etc).
+
+ Note that in these examples, the full name of `printf' has been
+given, to distinguish it from the GNU `bash' built-in function `printf'.
+
+ For larger strings, you don't need to look up the hexadecimal code
+values of each character one by one. ASCII characters mixed with \u
+escape sequences is also known as the JAVA source file encoding. You
+can use GNU recode 3.5c (or newer) to convert strings to this encoding.
+Here is how to convert a piece of text into a shell script which will
+output this text in a locale-independent way:
+
+ $ LC_CTYPE=zh_CN.big5 /usr/local/bin/printf \
+ '\u4e2d\u6587\n' > sample.txt
+ $ recode BIG5..JAVA < sample.txt \
+ | sed -e "s|^|/usr/local/bin/printf '|" -e "s|$|\\\\n'|" \
+ > sample.sh
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: yes invocation, Prev: printf invocation, Up: Printing text
+
+15.3 `yes': Print a string until interrupted
+============================================
+
+`yes' prints the command line arguments, separated by spaces and
+followed by a newline, forever until it is killed. If no arguments are
+given, it prints `y' followed by a newline forever until killed.
+
+ Upon a write error, `yes' exits with status `1'.
+
+ The only options are a lone `--help' or `--version'. To output an
+argument that begins with `-', precede it with `--', e.g., `yes --
+--help'. *Note Common options::.
+
+
+File: coreutils.info, Node: Conditions, Next: Redirection, Prev: Printing text, Up: Top
+
+16 Conditions
+*************
+
+This section describes commands that are primarily useful for their exit
+status, rather than their output. Thus, they are often used as the
+condition of shell `if' statements, or as the last command in a
+pipeline.
+
+* Menu:
+
+* false invocation:: Do nothing, unsuccessfully.
+* true invocation:: Do nothing, successfully.
+* test invocation:: Check file types and compare values.
+* expr invocation:: Evaluate expressions.
+
+
+File: coreutils.info, Node: false invocation, Next: true invocation, Up: Conditions
+
+16.1 `false': Do nothing, unsuccessfully
+========================================
+
+`false' does nothing except return an exit status of 1, meaning
+"failure". It can be used as a place holder in shell scripts where an
+unsuccessful command is needed.
+
+ `false' honors the `--help' and `--version' options.
+
+ This version of `false' is implemented as a C program, and is thus
+more secure and faster than a shell script implementation, and may
+safely be used as a dummy shell for the purpose of disabling accounts.
+
+ Note that `false' (unlike all other programs documented herein)
+exits unsuccessfully, even when invoked with `--help' or `--version'.
+
+
+File: coreutils.info, Node: true invocation, Next: test invocation, Prev: false invocation, Up: Conditions
+
+16.2 `true': Do nothing, successfully
+=====================================
+
+`true' does nothing except return an exit status of 0, meaning
+"success". It can be used as a place holder in shell scripts where a
+successful command is needed, although the shell built-in command `:'
+(colon) may do the same thing faster. In most modern shells, `true' is
+a built-in command, so when you use `true' in a script, you're probably
+using the built-in command, not the one documented here.
+
+ `true' honors the `--help' and `--version' options.
+
+ Note, however, that it is possible to cause `true' to exit with
+nonzero status: when invoked in non-POSIX mode, with the `--help' or
+`--version' option, and with standard output already closed or
+redirected to a file that evokes an I/O error. For example, using a
+Bourne-compatible shell:
+
+ $ ./true --version >&-
+ ./true: write error: Bad file number
+ $ ./true --version > /dev/full
+ ./true: write error: No space left on device
+
+ This version of `true' is implemented as a C program, and is thus
+more secure and faster than a shell script implementation, and may
+safely be used as a dummy shell for the purpose of disabling accounts.
+
+
+File: coreutils.info, Node: test invocation, Next: expr invocation, Prev: true invocation, Up: Conditions
+
+16.3 `test': Check file types and compare values
+================================================
+
+`test' returns a status of 0 (true) or 1 (false) depending on the
+evaluation of the conditional expression EXPR. Each part of the
+expression must be a separate argument.
+
+ `test' has file status checks, string operators, and numeric
+comparison operators.
+
+ `test' has an alternate form that uses opening and closing square
+brackets instead a leading `test'. For example, instead of `test -d
+/', you can write `[ -d / ]'. The square brackets must be separate
+arguments; for example, `[-d /]' does not have the desired effect.
+Since `test EXPR' and `[ EXPR ]' have the same meaning, only the former
+form is discussed below.
+
+ Synopses:
+
+ test EXPRESSION
+ test
+ [ EXPRESSION ]
+ [ ]
+ [ OPTION
+
+ Because most shells have a built-in `test' command, using an
+unadorned `test' in a script or interactively may get you different
+functionality than that described here.
+
+ If EXPRESSION is omitted, `test' returns false. If EXPRESSION is a
+single argument, `test' returns false if the argument is null and true
+otherwise. The argument can be any string, including strings like
+`-d', `-1', `--', `--help', and `--version' that most other programs
+would treat as options. To get help and version information, invoke
+the commands `[ --help' and `[ --version', without the usual closing
+brackets. *Note Common options::.
+
+ Exit status:
+
+ 0 if the expression is true,
+ 1 if the expression is false,
+ 2 if an error occurred.
+
+* Menu:
+
+* File type tests:: -[bcdfhLpSt]
+* Access permission tests:: -[gkruwxOG]
+* File characteristic tests:: -e -s -nt -ot -ef
+* String tests:: -z -n = !=
+* Numeric tests:: -eq -ne -lt -le -gt -ge
+* Connectives for test:: ! -a -o
+
+
+File: coreutils.info, Node: File type tests, Next: Access permission tests, Up: test invocation
+
+16.3.1 File type tests
+----------------------
+
+These options test for particular types of files. (Everything's a file,
+but not all files are the same!)
+
+`-b FILE'
+ True if FILE exists and is a block special device.
+
+`-c FILE'
+ True if FILE exists and is a character special device.
+
+`-d FILE'
+ True if FILE exists and is a directory.
+
+`-f FILE'
+ True if FILE exists and is a regular file.
+
+`-h FILE'
+`-L FILE'
+ True if FILE exists and is a symbolic link. Unlike all other
+ file-related tests, this test does not dereference FILE if it is a
+ symbolic link.
+
+`-p FILE'
+ True if FILE exists and is a named pipe.
+
+`-S FILE'
+ True if FILE exists and is a socket.
+
+`-t FD'
+ True if FD is a file descriptor that is associated with a terminal.
+
+
+
+File: coreutils.info, Node: Access permission tests, Next: File characteristic tests, Prev: File type tests, Up: test invocation
+
+16.3.2 Access permission tests
+------------------------------
+
+These options test for particular access permissions.
+
+`-g FILE'
+ True if FILE exists and has its set-group-id bit set.
+
+`-k FILE'
+ True if FILE exists and has its "sticky" bit set.
+
+`-r FILE'
+ True if FILE exists and read permission is granted.
+
+`-u FILE'
+ True if FILE exists and has its set-user-id bit set.
+
+`-w FILE'
+ True if FILE exists and write permission is granted.
+
+`-x FILE'
+ True if FILE exists and execute permission is granted (or search
+ permission, if it is a directory).
+
+`-O FILE'
+ True if FILE exists and is owned by the current effective user id.
+
+`-G FILE'
+ True if FILE exists and is owned by the current effective group id.
+
+
+
+File: coreutils.info, Node: File characteristic tests, Next: String tests, Prev: Access permission tests, Up: test invocation
+
+16.3.3 File characteristic tests
+--------------------------------
+
+These options test other file characteristics.
+
+`-e FILE'
+ True if FILE exists.
+
+`-s FILE'
+ True if FILE exists and has a size greater than zero.
+
+`FILE1 -nt FILE2'
+ True if FILE1 is newer (according to modification date) than
+ FILE2, or if FILE1 exists and FILE2 does not.
+
+`FILE1 -ot FILE2'
+ True if FILE1 is older (according to modification date) than
+ FILE2, or if FILE2 exists and FILE1 does not.
+
+`FILE1 -ef FILE2'
+ True if FILE1 and FILE2 have the same device and inode numbers,
+ i.e., if they are hard links to each other.
+
+
+
+File: coreutils.info, Node: String tests, Next: Numeric tests, Prev: File characteristic tests, Up: test invocation
+
+16.3.4 String tests
+-------------------
+
+These options test string characteristics. You may need to quote
+STRING arguments for the shell. For example:
+
+ test -n "$V"
+
+ The quotes here prevent the wrong arguments from being passed to
+`test' if `$V' is empty or contains special characters.
+
+`-z STRING'
+ True if the length of STRING is zero.
+
+`-n STRING'
+`STRING'
+ True if the length of STRING is nonzero.
+
+`STRING1 = STRING2'
+ True if the strings are equal.
+
+`STRING1 != STRING2'
+ True if the strings are not equal.
+
+
+
+File: coreutils.info, Node: Numeric tests, Next: Connectives for test, Prev: String tests, Up: test invocation
+
+16.3.5 Numeric tests
+--------------------
+
+Numeric relationals. The arguments must be entirely numeric (possibly
+negative), or the special expression `-l STRING', which evaluates to
+the length of STRING.
+
+`ARG1 -eq ARG2'
+`ARG1 -ne ARG2'
+`ARG1 -lt ARG2'
+`ARG1 -le ARG2'
+`ARG1 -gt ARG2'
+`ARG1 -ge ARG2'
+ These arithmetic binary operators return true if ARG1 is equal,
+ not-equal, less-than, less-than-or-equal, greater-than, or
+ greater-than-or-equal than ARG2, respectively.
+
+
+ For example:
+
+ test -1 -gt -2 && echo yes
+ => yes
+ test -l abc -gt 1 && echo yes
+ => yes
+ test 0x100 -eq 1
+ error--> test: integer expression expected before -eq
+
+
+File: coreutils.info, Node: Connectives for test, Prev: Numeric tests, Up: test invocation
+
+16.3.6 Connectives for `test'
+-----------------------------
+
+The usual logical connectives.
+
+`! EXPR'
+ True if EXPR is false.
+
+`EXPR1 -a EXPR2'
+ True if both EXPR1 and EXPR2 are true.
+
+`EXPR1 -o EXPR2'
+ True if either EXPR1 or EXPR2 is true.
+
+
+
+File: coreutils.info, Node: expr invocation, Prev: test invocation, Up: Conditions
+
+16.4 `expr': Evaluate expressions
+=================================
+
+`expr' evaluates an expression and writes the result on standard
+output. Each token of the expression must be a separate argument.
+
+ Operands are either integers or strings. Integers consist of one or
+more decimal digits, with an optional leading `-'. `expr' converts
+anything appearing in an operand position to an integer or a string
+depending on the operation being applied to it.
+
+ Strings are not quoted for `expr' itself, though you may need to
+quote them to protect characters with special meaning to the shell,
+e.g., spaces. However, regardless of whether it is quoted, a string
+operand should not be a parenthesis or any of `expr''s operators like
+`+', so you cannot safely pass an arbitrary string `$str' to expr
+merely by quoting it to the shell. One way to work around this is to
+use the GNU extension `+', (e.g., `+ "$str" = foo'); a more portable
+way is to use `" $str"' and to adjust the rest of the expression to take
+the leading space into account (e.g., `" $str" = " foo"').
+
+ You should not pass a negative integer or a string with leading `-'
+as `expr''s first argument, as it might be misinterpreted as an option;
+this can be avoided by parenthesization. Also, portable scripts should
+not use a string operand that happens to take the form of an integer;
+this can be worked around by inserting leading spaces as mentioned
+above.
+
+ Operators may be given as infix symbols or prefix keywords.
+Parentheses may be used for grouping in the usual manner. You must
+quote parentheses and many operators to avoid the shell evaluating them,
+however.
+
+ The only options are `--help' and `--version'. *Note Common
+options::. Options must precede operands.
+
+ Exit status:
+
+ 0 if the expression is neither null nor 0,
+ 1 if the expression is null or 0,
+ 2 if the expression is syntactically invalid,
+ 3 if an error occurred.
+
+* Menu:
+
+* String expressions:: + : match substr index length
+* Numeric expressions:: + - * / %
+* Relations for expr:: | & < <= = == != >= >
+* Examples of expr:: Examples.
+
+
+File: coreutils.info, Node: String expressions, Next: Numeric expressions, Up: expr invocation
+
+16.4.1 String expressions
+-------------------------
+
+`expr' supports pattern matching and other string operators. These
+have lower precedence than both the numeric and relational operators (in
+the next sections).
+
+`STRING : REGEX'
+ Perform pattern matching. The arguments are converted to strings
+ and the second is considered to be a (basic, a la GNU `grep')
+ regular expression, with a `^' implicitly prepended. The first
+ argument is then matched against this regular expression.
+
+ If the match succeeds and REGEX uses `\(' and `\)', the `:'
+ expression returns the part of STRING that matched the
+ subexpression; otherwise, it returns the number of characters
+ matched.
+
+ If the match fails, the `:' operator returns the null string if
+ `\(' and `\)' are used in REGEX, otherwise 0.
+
+ Only the first `\( ... \)' pair is relevant to the return value;
+ additional pairs are meaningful only for grouping the regular
+ expression operators.
+
+ In the regular expression, `\+', `\?', and `\|' are operators
+ which respectively match one or more, zero or one, or separate
+ alternatives. SunOS and other `expr''s treat these as regular
+ characters. (POSIX allows either behavior.) *Note Regular
+ Expression Library: (regex)Top, for details of regular expression
+ syntax. Some examples are in *Note Examples of expr::.
+
+`match STRING REGEX'
+ An alternative way to do pattern matching. This is the same as
+ `STRING : REGEX'.
+
+`substr STRING POSITION LENGTH'
+ Returns the substring of STRING beginning at POSITION with length
+ at most LENGTH. If either POSITION or LENGTH is negative, zero,
+ or non-numeric, returns the null string.
+
+`index STRING CHARSET'
+ Returns the first position in STRING where the first character in
+ CHARSET was found. If no character in CHARSET is found in STRING,
+ return 0.
+
+`length STRING'
+ Returns the length of STRING.
+
+`+ TOKEN'
+ Interpret TOKEN as a string, even if it is a keyword like MATCH or
+ an operator like `/'. This makes it possible to test `expr length
+ + "$x"' or `expr + "$x" : '.*/\(.\)'' and have it do the right
+ thing even if the value of $X happens to be (for example) `/' or
+ `index'. This operator is a GNU extension. Portable shell
+ scripts should use `" $token" : ' \(.*\)'' instead of `+ "$token"'.
+
+
+ To make `expr' interpret keywords as strings, you must use the
+`quote' operator.
+
+
+File: coreutils.info, Node: Numeric expressions, Next: Relations for expr, Prev: String expressions, Up: expr invocation
+
+16.4.2 Numeric expressions
+--------------------------
+
+`expr' supports the usual numeric operators, in order of increasing
+precedence. The string operators (previous section) have lower
+precedence, the connectives (next section) have higher.
+
+`+ -'
+ Addition and subtraction. Both arguments are converted to
+ integers; an error occurs if this cannot be done.
+
+`* / %'
+ Multiplication, division, remainder. Both arguments are converted
+ to integers; an error occurs if this cannot be done.
+
+
+
+File: coreutils.info, Node: Relations for expr, Next: Examples of expr, Prev: Numeric expressions, Up: expr invocation
+
+16.4.3 Relations for `expr'
+---------------------------
+
+`expr' supports the usual logical connectives and relations. These are
+higher precedence than either the string or numeric operators (previous
+sections). Here is the list, lowest-precedence operator first.
+
+`|'
+ Returns its first argument if that is neither null nor zero,
+ otherwise its second argument if it is neither null nor zero,
+ otherwise 0. It does not evaluate its second argument if its
+ first argument is neither null nor zero.
+
+`&'
+ Return its first argument if neither argument is null or zero,
+ otherwise 0. It does not evaluate its second argument if its
+ first argument is null or zero.
+
+`< <= = == != >= >'
+ Compare the arguments and return 1 if the relation is true, 0
+ otherwise. `==' is a synonym for `='. `expr' first tries to
+ convert both arguments to integers and do a numeric comparison; if
+ either conversion fails, it does a lexicographic comparison using
+ the character collating sequence specified by the `LC_COLLATE'
+ locale.
+
+
+
+File: coreutils.info, Node: Examples of expr, Prev: Relations for expr, Up: expr invocation
+
+16.4.4 Examples of using `expr'
+-------------------------------
+
+Here are a few examples, including quoting for shell metacharacters.
+
+ To add 1 to the shell variable `foo', in Bourne-compatible shells:
+
+ foo=`expr $foo + 1`
+
+ To print the non-directory part of the file name stored in `$fname',
+which need not contain a `/':
+
+ expr $fname : '.*/\(.*\)' '|' $fname
+
+ An example showing that `\+' is an operator:
+
+ expr aaa : 'a\+'
+ => 3
+
+ expr abc : 'a\(.\)c'
+ => b
+ expr index abcdef cz
+ => 3
+ expr index index a
+ error--> expr: syntax error
+ expr index quote index a
+ => 0
+
+
+File: coreutils.info, Node: Redirection, Next: File name manipulation, Prev: Conditions, Up: Top
+
+17 Redirection
+**************
+
+Unix shells commonly provide several forms of "redirection"--ways to
+change the input source or output destination of a command. But one
+useful redirection is performed by a separate command, not by the shell;
+it's described here.
+
+* Menu:
+
+* tee invocation:: Redirect output to multiple files.
+
+
+File: coreutils.info, Node: tee invocation, Up: Redirection
+
+17.1 `tee': Redirect output to multiple files
+=============================================
+
+The `tee' command copies standard input to standard output and also to
+any files given as arguments. This is useful when you want not only to
+send some data down a pipe, but also to save a copy. Synopsis:
+
+ tee [OPTION]... [FILE]...
+
+ If a file being written to does not already exist, it is created.
+If a file being written to already exists, the data it previously
+contained is overwritten unless the `-a' option is used.
+
+ A FILE of `-' causes `tee' to send another copy of input to standard
+output, but this is typically not that useful as the copies are
+interleaved.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-a'
+`--append'
+ Append standard input to the given files rather than overwriting
+ them.
+
+`-i'
+`--ignore-interrupts'
+ Ignore interrupt signals.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: File name manipulation, Next: Working context, Prev: Redirection, Up: Top
+
+18 File name manipulation
+*************************
+
+This section describes commands that manipulate file names.
+
+* Menu:
+
+* basename invocation:: Strip directory and suffix from a file name.
+* dirname invocation:: Strip non-directory suffix from a file name.
+* pathchk invocation:: Check file name portability.
+
+
+File: coreutils.info, Node: basename invocation, Next: dirname invocation, Up: File name manipulation
+
+18.1 `basename': Strip directory and suffix from a file name
+============================================================
+
+`basename' removes any leading directory components from NAME.
+Synopsis:
+
+ basename NAME [SUFFIX]
+
+ If SUFFIX is specified and is identical to the end of NAME, it is
+removed from NAME as well. `basename' prints the result on standard
+output.
+
+ The only options are `--help' and `--version'. *Note Common
+options::. Options must precede operands.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: dirname invocation, Next: pathchk invocation, Prev: basename invocation, Up: File name manipulation
+
+18.2 `dirname': Strip non-directory suffix from a file name
+===========================================================
+
+`dirname' prints all but the final slash-delimited component of a
+string (presumably a file name). Synopsis:
+
+ dirname NAME
+
+ If NAME is a single component, `dirname' prints `.' (meaning the
+current directory).
+
+ The only options are `--help' and `--version'. *Note Common
+options::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: pathchk invocation, Prev: dirname invocation, Up: File name manipulation
+
+18.3 `pathchk': Check file name portability
+===========================================
+
+`pathchk' checks portability of file names. Synopsis:
+
+ pathchk [OPTION]... NAME...
+
+ For each NAME, `pathchk' prints a message if any of these conditions
+is true:
+
+ 1. One of the existing directories in NAME does not have search
+ (execute) permission,
+
+ 2. The length of NAME is larger than the maximum supported by the
+ operating system.
+
+ 3. The length of one component of NAME is longer than its file
+ system's maximum.
+
+ A nonexistent NAME is not an error, so long a file with that name
+could be created under the above conditions.
+
+ The program accepts the following option. Also see *Note Common
+options::. Options must precede operands.
+
+`-p'
+`--portability'
+ Do not perform checks based on the underlying file system.
+ Instead, check the length of each file name and its components
+ against the POSIX minimum limits for portability. Also check that
+ the file name contains only characters that are in the portable
+ file name character set, namely, the ASCII letters and digits, `-',
+ `.', `/', and `_'.
+
+
+ Exit status:
+
+ 0 if all specified file names passed all checks,
+ 1 otherwise.
+
+
+File: coreutils.info, Node: Working context, Next: User information, Prev: File name manipulation, Up: Top
+
+19 Working context
+******************
+
+This section describes commands that display or alter the context in
+which you are working: the current directory, the terminal settings, and
+so forth. See also the user-related commands in the next section.
+
+* Menu:
+
+* pwd invocation:: Print working directory.
+* stty invocation:: Print or change terminal characteristics.
+* printenv invocation:: Print environment variables.
+* tty invocation:: Print file name of terminal on standard input.
+
+
+File: coreutils.info, Node: pwd invocation, Next: stty invocation, Up: Working context
+
+19.1 `pwd': Print working directory
+===================================
+
+`pwd' prints the fully resolved name of the current directory. That
+is, all components of the printed name will be actual directory
+names--none will be symbolic links.
+
+ Because most shells have a built-in `pwd' command, using an
+unadorned `pwd' in a script or interactively may get you different
+functionality than that described here.
+
+ The only options are a lone `--help' or `--version'. *Note Common
+options::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: stty invocation, Next: printenv invocation, Prev: pwd invocation, Up: Working context
+
+19.2 `stty': Print or change terminal characteristics
+=====================================================
+
+`stty' prints or changes terminal characteristics, such as baud rate.
+Synopses:
+
+ stty [OPTION] [SETTING]...
+ stty [OPTION]
+
+ If given no line settings, `stty' prints the baud rate, line
+discipline number (on systems that support it), and line settings that
+have been changed from the values set by `stty sane'. By default, mode
+reading and setting are performed on the tty line connected to standard
+input, although this can be modified by the `--file' option.
+
+ `stty' accepts many non-option arguments that change aspects of the
+terminal line operation, as described below.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-a'
+`--all'
+ Print all current settings in human-readable form. This option
+ may not be used in combination with any line settings.
+
+`-F DEVICE'
+`--file=DEVICE'
+ Set the line opened by the file name specified in DEVICE instead of
+ the tty line connected to standard input. This option is necessary
+ because opening a POSIX tty requires use of the `O_NONDELAY' flag
+ to prevent a POSIX tty from blocking until the carrier detect line
+ is high if the `clocal' flag is not set. Hence, it is not always
+ possible to allow the shell to open the device in the traditional
+ manner.
+
+`-g'
+`--save'
+ Print all current settings in a form that can be used as an
+ argument to another `stty' command to restore the current
+ settings. This option may not be used in combination with any
+ line settings.
+
+
+ Many settings can be turned off by preceding them with a `-'. Such
+arguments are marked below with "May be negated" in their description.
+The descriptions themselves refer to the positive case, that is, when
+_not_ negated (unless stated otherwise, of course).
+
+ Some settings are not available on all POSIX systems, since they use
+extensions. Such arguments are marked below with "Non-POSIX" in their
+description. On non-POSIX systems, those or other settings also may not
+be available, but it's not feasible to document all the variations: just
+try it and see.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+* Menu:
+
+* Control:: Control settings
+* Input:: Input settings
+* Output:: Output settings
+* Local:: Local settings
+* Combination:: Combination settings
+* Characters:: Special characters
+* Special:: Special settings
+
+
+File: coreutils.info, Node: Control, Next: Input, Up: stty invocation
+
+19.2.1 Control settings
+-----------------------
+
+Control settings:
+
+`parenb'
+ Generate parity bit in output and expect parity bit in input. May
+ be negated.
+
+`parodd'
+ Set odd parity (even if negated). May be negated.
+
+`cs5'
+`cs6'
+`cs7'
+`cs8'
+ Set character size to 5, 6, 7, or 8 bits.
+
+`hup'
+`hupcl'
+ Send a hangup signal when the last process closes the tty. May be
+ negated.
+
+`cstopb'
+ Use two stop bits per character (one if negated). May be negated.
+
+`cread'
+ Allow input to be received. May be negated.
+
+`clocal'
+ Disable modem control signals. May be negated.
+
+`crtscts'
+ Enable RTS/CTS flow control. Non-POSIX. May be negated.
+
+
+File: coreutils.info, Node: Input, Next: Output, Prev: Control, Up: stty invocation
+
+19.2.2 Input settings
+---------------------
+
+`ignbrk'
+ Ignore break characters. May be negated.
+
+`brkint'
+ Make breaks cause an interrupt signal. May be negated.
+
+`ignpar'
+ Ignore characters with parity errors. May be negated.
+
+`parmrk'
+ Mark parity errors (with a 255-0-character sequence). May be
+ negated.
+
+`inpck'
+ Enable input parity checking. May be negated.
+
+`istrip'
+ Clear high (8th) bit of input characters. May be negated.
+
+`inlcr'
+ Translate newline to carriage return. May be negated.
+
+`igncr'
+ Ignore carriage return. May be negated.
+
+`icrnl'
+ Translate carriage return to newline. May be negated.
+
+`iutf8'
+ Assume input characters are UTF-8 encoded. May be negated.
+
+`ixon'
+ Enable XON/XOFF flow control (that is, `CTRL-S'/`CTRL-Q'). May be
+ negated.
+
+`ixoff'
+`tandem'
+ Enable sending of `stop' character when the system input buffer is
+ almost full, and `start' character when it becomes almost empty
+ again. May be negated.
+
+`iuclc'
+ Translate uppercase characters to lowercase. Non-POSIX. May be
+ negated.
+
+`ixany'
+ Allow any character to restart output (only the start character if
+ negated). Non-POSIX. May be negated.
+
+`imaxbel'
+ Enable beeping and not flushing input buffer if a character arrives
+ when the input buffer is full. Non-POSIX. May be negated.
+
+
+File: coreutils.info, Node: Output, Next: Local, Prev: Input, Up: stty invocation
+
+19.2.3 Output settings
+----------------------
+
+These arguments specify output-related operations.
+
+`opost'
+ Postprocess output. May be negated.
+
+`olcuc'
+ Translate lowercase characters to uppercase. Non-POSIX. May be
+ negated.
+
+`ocrnl'
+ Translate carriage return to newline. Non-POSIX. May be negated.
+
+`onlcr'
+ Translate newline to carriage return-newline. Non-POSIX. May be
+ negated.
+
+`onocr'
+ Do not print carriage returns in the first column. Non-POSIX.
+ May be negated.
+
+`onlret'
+ Newline performs a carriage return. Non-POSIX. May be negated.
+
+`ofill'
+ Use fill (padding) characters instead of timing for delays.
+ Non-POSIX. May be negated.
+
+`ofdel'
+ Use delete characters for fill instead of null characters.
+ Non-POSIX. May be negated.
+
+`nl1'
+`nl0'
+ Newline delay style. Non-POSIX.
+
+`cr3'
+`cr2'
+`cr1'
+`cr0'
+ Carriage return delay style. Non-POSIX.
+
+`tab3'
+`tab2'
+`tab1'
+`tab0'
+ Horizontal tab delay style. Non-POSIX.
+
+`bs1'
+`bs0'
+ Backspace delay style. Non-POSIX.
+
+`vt1'
+`vt0'
+ Vertical tab delay style. Non-POSIX.
+
+`ff1'
+`ff0'
+ Form feed delay style. Non-POSIX.
+
+
+File: coreutils.info, Node: Local, Next: Combination, Prev: Output, Up: stty invocation
+
+19.2.4 Local settings
+---------------------
+
+`isig'
+ Enable `interrupt', `quit', and `suspend' special characters. May
+ be negated.
+
+`icanon'
+ Enable `erase', `kill', `werase', and `rprnt' special characters.
+ May be negated.
+
+`iexten'
+ Enable non-POSIX special characters. May be negated.
+
+`echo'
+ Echo input characters. May be negated.
+
+`echoe'
+`crterase'
+ Echo `erase' characters as backspace-space-backspace. May be
+ negated.
+
+`echok'
+ Echo a newline after a `kill' character. May be negated.
+
+`echonl'
+ Echo newline even if not echoing other characters. May be negated.
+
+`noflsh'
+ Disable flushing after `interrupt' and `quit' special characters.
+ May be negated.
+
+`xcase'
+ Enable input and output of uppercase characters by preceding their
+ lowercase equivalents with `\', when `icanon' is set. Non-POSIX.
+ May be negated.
+
+`tostop'
+ Stop background jobs that try to write to the terminal. Non-POSIX.
+ May be negated.
+
+`echoprt'
+`prterase'
+ Echo erased characters backward, between `\' and `/'. Non-POSIX.
+ May be negated.
+
+`echoctl'
+`ctlecho'
+ Echo control characters in hat notation (`^C') instead of
+ literally. Non-POSIX. May be negated.
+
+`echoke'
+`crtkill'
+ Echo the `kill' special character by erasing each character on the
+ line as indicated by the `echoprt' and `echoe' settings, instead
+ of by the `echoctl' and `echok' settings. Non-POSIX. May be
+ negated.
+
+
+File: coreutils.info, Node: Combination, Next: Characters, Prev: Local, Up: stty invocation
+
+19.2.5 Combination settings
+---------------------------
+
+Combination settings:
+
+`evenp'
+`parity'
+ Same as `parenb -parodd cs7'. May be negated. If negated, same
+ as `-parenb cs8'.
+
+`oddp'
+ Same as `parenb parodd cs7'. May be negated. If negated, same as
+ `-parenb cs8'.
+
+`nl'
+ Same as `-icrnl -onlcr'. May be negated. If negated, same as
+ `icrnl -inlcr -igncr onlcr -ocrnl -onlret'.
+
+`ek'
+ Reset the `erase' and `kill' special characters to their default
+ values.
+
+`sane'
+ Same as:
+
+ cread -ignbrk brkint -inlcr -igncr icrnl -ixoff
+ -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr
+ -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
+ ff0 isig icanon iexten echo echoe echok -echonl
+ -noflsh -xcase -tostop -echoprt echoctl echoke
+
+ and also sets all special characters to their default values.
+
+`cooked'
+ Same as `brkint ignpar istrip icrnl ixon opost isig icanon', plus
+ sets the `eof' and `eol' characters to their default values if
+ they are the same as the `min' and `time' characters. May be
+ negated. If negated, same as `raw'.
+
+`raw'
+ Same as:
+
+ -ignbrk -brkint -ignpar -parmrk -inpck -istrip
+ -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany
+ -imaxbel -opost -isig -icanon -xcase min 1 time 0
+
+ May be negated. If negated, same as `cooked'.
+
+`cbreak'
+ Same as `-icanon'. May be negated. If negated, same as `icanon'.
+
+`pass8'
+ Same as `-parenb -istrip cs8'. May be negated. If negated, same
+ as `parenb istrip cs7'.
+
+`litout'
+ Same as `-parenb -istrip -opost cs8'. May be negated. If
+ negated, same as `parenb istrip opost cs7'.
+
+`decctlq'
+ Same as `-ixany'. Non-POSIX. May be negated.
+
+`tabs'
+ Same as `tab0'. Non-POSIX. May be negated. If negated, same as
+ `tab3'.
+
+`lcase'
+`LCASE'
+ Same as `xcase iuclc olcuc'. Non-POSIX. May be negated.
+
+`crt'
+ Same as `echoe echoctl echoke'.
+
+`dec'
+ Same as `echoe echoctl echoke -ixany intr ^C erase ^? kill C-u'.
+
+
+File: coreutils.info, Node: Characters, Next: Special, Prev: Combination, Up: stty invocation
+
+19.2.6 Special characters
+-------------------------
+
+The special characters' default values vary from system to system.
+They are set with the syntax `name value', where the names are listed
+below and the value can be given either literally, in hat notation
+(`^C'), or as an integer which may start with `0x' to indicate
+hexadecimal, `0' to indicate octal, or any other digit to indicate
+decimal.
+
+ For GNU stty, giving a value of `^-' or `undef' disables that
+special character. (This is incompatible with Ultrix `stty', which
+uses a value of `u' to disable a special character. GNU `stty' treats
+a value `u' like any other, namely to set that special character to
+<U>.)
+
+`intr'
+ Send an interrupt signal.
+
+`quit'
+ Send a quit signal.
+
+`erase'
+ Erase the last character typed.
+
+`kill'
+ Erase the current line.
+
+`eof'
+ Send an end of file (terminate the input).
+
+`eol'
+ End the line.
+
+`eol2'
+ Alternate character to end the line. Non-POSIX.
+
+`swtch'
+ Switch to a different shell layer. Non-POSIX.
+
+`start'
+ Restart the output after stopping it.
+
+`stop'
+ Stop the output.
+
+`susp'
+ Send a terminal stop signal.
+
+`dsusp'
+ Send a terminal stop signal after flushing the input. Non-POSIX.
+
+`rprnt'
+ Redraw the current line. Non-POSIX.
+
+`werase'
+ Erase the last word typed. Non-POSIX.
+
+`lnext'
+ Enter the next character typed literally, even if it is a special
+ character. Non-POSIX.
+
+
+File: coreutils.info, Node: Special, Prev: Characters, Up: stty invocation
+
+19.2.7 Special settings
+-----------------------
+
+`min N'
+ Set the minimum number of characters that will satisfy a read until
+ the time value has expired, when `-icanon' is set.
+
+`time N'
+ Set the number of tenths of a second before reads time out if the
+ minimum number of characters have not been read, when `-icanon' is
+ set.
+
+`ispeed N'
+ Set the input speed to N.
+
+`ospeed N'
+ Set the output speed to N.
+
+`rows N'
+ Tell the tty kernel driver that the terminal has N rows.
+ Non-POSIX.
+
+`cols N'
+`columns N'
+ Tell the kernel that the terminal has N columns. Non-POSIX.
+
+`size'
+ Print the number of rows and columns that the kernel thinks the
+ terminal has. (Systems that don't support rows and columns in the
+ kernel typically use the environment variables `LINES' and
+ `COLUMNS' instead; however, GNU `stty' does not know anything
+ about them.) Non-POSIX.
+
+`line N'
+ Use line discipline N. Non-POSIX.
+
+`speed'
+ Print the terminal speed.
+
+`N'
+ Set the input and output speeds to N. N can be one of: 0 50 75
+ 110 134 134.5 150 200 300 600 1200 1800 2400 4800 9600 19200 38400
+ `exta' `extb'. `exta' is the same as 19200; `extb' is the same as
+ 38400. 0 hangs up the line if `-clocal' is set.
+
+
+File: coreutils.info, Node: printenv invocation, Next: tty invocation, Prev: stty invocation, Up: Working context
+
+19.3 `printenv': Print all or some environment variables
+========================================================
+
+`printenv' prints environment variable values. Synopsis:
+
+ printenv [OPTION] [VARIABLE]...
+
+ If no VARIABLEs are specified, `printenv' prints the value of every
+environment variable. Otherwise, it prints the value of each VARIABLE
+that is set, and nothing for those that are not set.
+
+ The only options are a lone `--help' or `--version'. *Note Common
+options::.
+
+ Exit status:
+
+ 0 if all variables specified were found
+ 1 if at least one specified variable was not found
+ 2 if a write error occurred
+
+
+File: coreutils.info, Node: tty invocation, Prev: printenv invocation, Up: Working context
+
+19.4 `tty': Print file name of terminal on standard input
+=========================================================
+
+`tty' prints the file name of the terminal connected to its standard
+input. It prints `not a tty' if standard input is not a terminal.
+Synopsis:
+
+ tty [OPTION]...
+
+ The program accepts the following option. Also see *Note Common
+options::.
+
+`-s'
+`--silent'
+`--quiet'
+ Print nothing; only return an exit status.
+
+
+ Exit status:
+
+ 0 if standard input is a terminal
+ 1 if standard input is not a terminal
+ 2 if given incorrect arguments
+ 3 if a write error occurs
+
+
+File: coreutils.info, Node: User information, Next: System context, Prev: Working context, Up: Top
+
+20 User information
+*******************
+
+This section describes commands that print user-related information:
+logins, groups, and so forth.
+
+* Menu:
+
+* id invocation:: Print real and effective uid and gid.
+* logname invocation:: Print current login name.
+* whoami invocation:: Print effective user id.
+* groups invocation:: Print group names a user is in.
+* users invocation:: Print login names of users currently logged in.
+* who invocation:: Print who is currently logged in.
+
+
+File: coreutils.info, Node: id invocation, Next: logname invocation, Up: User information
+
+20.1 `id': Print real and effective uid and gid
+===============================================
+
+`id' prints information about the given user, or the process running it
+if no user is specified. Synopsis:
+
+ id [OPTION]... [USERNAME]
+
+ By default, it prints the real user id, real group id, effective
+user id if different from the real user id, effective group id if
+different from the real group id, and supplemental group ids.
+
+ Each of these numeric values is preceded by an identifying string and
+followed by the corresponding user or group name in parentheses.
+
+ The options cause `id' to print only part of the above information.
+Also see *Note Common options::.
+
+`-g'
+`--group'
+ Print only the group id.
+
+`-G'
+`--groups'
+ Print only the group id and the supplementary groups.
+
+`-n'
+`--name'
+ Print the user or group name instead of the ID number. Requires
+ `-u', `-g', or `-G'.
+
+`-r'
+`--real'
+ Print the real, instead of effective, user or group id. Requires
+ `-u', `-g', or `-G'.
+
+`-u'
+`--user'
+ Print only the user id.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: logname invocation, Next: whoami invocation, Prev: id invocation, Up: User information
+
+20.2 `logname': Print current login name
+========================================
+
+`logname' prints the calling user's name, as found in a
+system-maintained file (often `/var/run/utmp' or `/etc/utmp'), and
+exits with a status of 0. If there is no entry for the calling
+process, `logname' prints an error message and exits with a status of 1.
+
+ The only options are `--help' and `--version'. *Note Common
+options::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: whoami invocation, Next: groups invocation, Prev: logname invocation, Up: User information
+
+20.3 `whoami': Print effective user id
+======================================
+
+`whoami' prints the user name associated with the current effective
+user id. It is equivalent to the command `id -un'.
+
+ The only options are `--help' and `--version'. *Note Common
+options::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: groups invocation, Next: users invocation, Prev: whoami invocation, Up: User information
+
+20.4 `groups': Print group names a user is in
+=============================================
+
+`groups' prints the names of the primary and any supplementary groups
+for each given USERNAME, or the current process if no names are given.
+If names are given, the name of each user is printed before the list of
+that user's groups. Synopsis:
+
+ groups [USERNAME]...
+
+ The group lists are equivalent to the output of the command `id -Gn'.
+
+ The only options are `--help' and `--version'. *Note Common
+options::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: users invocation, Next: who invocation, Prev: groups invocation, Up: User information
+
+20.5 `users': Print login names of users currently logged in
+============================================================
+
+`users' prints on a single line a blank-separated list of user names of
+users currently logged in to the current host. Each user name
+corresponds to a login session, so if a user has more than one login
+session, that user's name will appear the same number of times in the
+output. Synopsis:
+
+ users [FILE]
+
+ With no FILE argument, `users' extracts its information from a
+system-maintained file (often `/var/run/utmp' or `/etc/utmp'). If a
+file argument is given, `users' uses that file instead. A common
+choice is `/var/log/wtmp'.
+
+ The only options are `--help' and `--version'. *Note Common
+options::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: who invocation, Prev: users invocation, Up: User information
+
+20.6 `who': Print who is currently logged in
+============================================
+
+`who' prints information about users who are currently logged on.
+Synopsis:
+
+ `who' [OPTION] [FILE] [am i]
+
+ If given no non-option arguments, `who' prints the following
+information for each user currently logged on: login name, terminal
+line, login time, and remote hostname or X display.
+
+ If given one non-option argument, `who' uses that instead of a
+default system-maintained file (often `/var/run/utmp' or +`/etc/utmp')
+as the name of the file containing the record of users logged on.
+`/var/log/wtmp' is commonly given as an argument to `who' to look at
+who has previously logged on.
+
+ If given two non-option arguments, `who' prints only the entry for
+the user running it (determined from its standard input), preceded by
+the hostname. Traditionally, the two arguments given are `am i', as in
+`who am i'.
+
+ Time stamps are listed according to the time zone rules specified by
+the `TZ' environment variable, or by the system default rules if `TZ'
+is not set. *Note Specifying the Time Zone with `TZ': (libc)TZ
+Variable.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-a'
+`--all'
+ Same as `-b -d --login -p -r -t -T -u'.
+
+`-b'
+`--boot'
+ Print the date and time of last system boot.
+
+`-d'
+`--dead'
+ Print information corresponding to dead processes.
+
+`-H'
+`--heading'
+ Print column headings.
+
+`-i'
+`--idle'
+ Include idle time in HOURS:MINUTES, `.' (to indicate current
+ process), or `old'.
+
+`-m'
+ Same as `who am i'.
+
+`-q'
+`--count'
+ Print only the login names and the number of users logged on.
+ Overrides all other options.
+
+`-s'
+ Ignored; for compatibility with other versions of `who'.
+
+`-i'
+`-u'
+`--idle'
+ After the login time, print the number of hours and minutes that
+ the user has been idle. `.' means the user was active in last
+ minute. `old' means the user was idle for more than 24 hours.
+
+`-l'
+`--login'
+ List only the entries that correspond to processes via which the
+ system is waiting for a user to login. The user name is always
+ `LOGIN'.
+
+`--lookup'
+ Attempt to canonicalize hostnames found in utmp through a DNS
+ lookup. This is not the default because it can cause significant
+ delays on systems with automatic dial-up internet access.
+
+`-H'
+`--heading'
+ Print a line of column headings.
+
+`-w'
+`-T'
+`--mesg'
+`--message'
+`--writable'
+ After each login name print a character indicating the user's
+ message status:
+
+ `+' allowing `write' messages
+ `-' disallowing `write' messages
+ `?' cannot find terminal device
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: System context, Next: Modified command invocation, Prev: User information, Up: Top
+
+21 System context
+*****************
+
+This section describes commands that print or change system-wide
+information.
+
+* Menu:
+
+* date invocation:: Print or set system date and time.
+* uname invocation:: Print system information.
+* hostname invocation:: Print or set system name.
+* hostid invocation:: Print numeric host identifier.
+
+
+File: coreutils.info, Node: date invocation, Next: uname invocation, Up: System context
+
+21.1 `date': Print or set system date and time
+==============================================
+
+Synopses:
+
+ date [OPTION]... [+FORMAT]
+ date [-u|--utc|--universal] [ MMDDhhmm[[CC]YY][.ss] ]
+
+ Invoking `date' with no FORMAT argument is equivalent to invoking it
+with a default format that depends on the `LC_TIME' locale category.
+In the default C locale, this format is `'+%a %b %e %H:%M:%S %Z %Y'',
+so the output looks like `Fri Feb 27 13:47:51 PST 2004'.
+
+ Normally, `date' uses the time zone rules indicated by the `TZ'
+environment variable, or the system default rules if `TZ' is not set.
+*Note Specifying the Time Zone with `TZ': (libc)TZ Variable.
+
+ If given an argument that starts with a `+', `date' prints the
+current time and date (or the time and date specified by the `--date'
+option, see below) in the format defined by that argument, which is
+similar to that of the `strftime' function. Except for directives,
+which start with `%', characters in the format string are printed
+unchanged. The directives are described below.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+* Menu:
+
+* Time directives:: %[HIklMprsSTXzZ]
+* Date directives:: %[aAbBcCdDhjmUwWxyY]
+* Literal directives:: %[%nt]
+* Padding:: Pad with zeroes, spaces (%_), or nothing (%-).
+* Setting the time:: Changing the system clock.
+* Options for date:: Instead of the current time.
+* Examples of date:: Examples.
+
+
+File: coreutils.info, Node: Time directives, Next: Date directives, Up: date invocation
+
+21.1.1 Time directives
+----------------------
+
+`date' directives related to times.
+
+`%H'
+ hour (00...23)
+
+`%I'
+ hour (01...12)
+
+`%k'
+ hour ( 0...23)
+
+`%l'
+ hour ( 1...12)
+
+`%M'
+ minute (00...59)
+
+`%N'
+ nanoseconds (000000000...999999999)
+
+`%p'
+ locale's upper case `AM' or `PM' (blank in many locales)
+
+`%P'
+ locale's lower case `am' or `pm' (blank in many locales)
+
+`%r'
+ time, 12-hour (hh:mm:ss [AP]M)
+
+`%R'
+ time, 24-hour (hh:mm). Same as `%H:%M'.
+
+`%s'
+ seconds since the epoch, i.e., 1 January 1970 00:00:00 UTC (a GNU
+ extension). For examples, *Note %s-examples::.
+
+`%S'
+ second (00...60). The range is [00...60], and not [00...59], in
+ order to accommodate the occasional positive leap second.
+
+`%T'
+ time, 24-hour (hh:mm:ss)
+
+`%X'
+ locale's time representation (%H:%M:%S)
+
+`%z'
+ RFC-2822 style numeric time zone (e.g., `-0600' or `+0100'), or
+ nothing if no time zone is determinable. This value reflects the
+ _current_ time zone. It isn't changed by the `--date' option.
+
+`%Z'
+ time zone (e.g., EDT), or nothing if no time zone is determinable.
+ Note that this value reflects the _current_ time zone. It isn't
+ changed by the `--date' option.
+
+
+File: coreutils.info, Node: Date directives, Next: Literal directives, Prev: Time directives, Up: date invocation
+
+21.1.2 Date directives
+----------------------
+
+`date' directives related to dates.
+
+`%a'
+ locale's abbreviated weekday name (Sun...Sat)
+
+`%A'
+ locale's full weekday name, variable length (Sunday...Saturday)
+
+`%b'
+ locale's abbreviated month name (Jan...Dec)
+
+`%B'
+ locale's full month name, variable length (January...December)
+
+`%c'
+ locale's date and time (Sat Nov 04 12:02:33 EST 1989)
+
+`%C'
+ century (year divided by 100 and truncated to an integer) (00...99)
+
+`%d'
+ day of month (01...31)
+
+`%D'
+ date (mm/dd/yy)
+
+`%e'
+ blank-padded day of month (1...31)
+
+`%F'
+ the ISO 8601 standard date format: `%Y-%m-%d'. This is the
+ preferred form for all uses.
+
+`%g'
+ The year corresponding to the ISO week number, but without the
+ century (range `00' through `99'). This has the same format and
+ value as `%y', except that if the ISO week number (see `%V')
+ belongs to the previous or next year, that year is used instead.
+
+`%G'
+ The year corresponding to the ISO week number. This has the same
+ format and value as `%Y', except that if the ISO week number (see
+ `%V') belongs to the previous or next year, that year is used
+ instead.
+
+`%h'
+ same as %b
+
+`%j'
+ day of year (001...366)
+
+`%m'
+ month (01...12)
+
+`%u'
+ day of week (1...7) with 1 corresponding to Monday
+
+`%U'
+ week number of year with Sunday as first day of week (00...53).
+ Days in a new year preceding the first Sunday are in week zero.
+
+`%V'
+ week number of year with Monday as first day of the week as a
+ decimal (01...53). If the week containing January 1 has four or
+ more days in the new year, then it is considered week 1;
+ otherwise, it is week 53 of the previous year, and the next week
+ is week 1. (See the ISO 8601 standard.)
+
+`%w'
+ day of week (0...6) with 0 corresponding to Sunday
+
+`%W'
+ week number of year with Monday as first day of week (00...53).
+ Days in a new year preceding the first Monday are in week zero.
+
+`%x'
+ locale's date representation (mm/dd/yy)
+
+`%y'
+ last two digits of year (00...99)
+
+`%Y'
+ year (1970....)
+
+
+File: coreutils.info, Node: Literal directives, Next: Padding, Prev: Date directives, Up: date invocation
+
+21.1.3 Literal directives
+-------------------------
+
+`date' directives that produce literal strings.
+
+`%%'
+ a literal %
+
+`%n'
+ a newline
+
+`%t'
+ a horizontal tab
+
+
+File: coreutils.info, Node: Padding, Next: Setting the time, Prev: Literal directives, Up: date invocation
+
+21.1.4 Padding
+--------------
+
+By default, `date' pads numeric fields with zeroes, so that, for
+example, numeric months are always output as two digits. GNU `date'
+recognizes the following numeric modifiers between the `%' and the
+directive.
+
+`-'
+ (hyphen) do not pad the field; useful if the output is intended for
+ human consumption.
+
+`_'
+ (underscore) pad the field with spaces; useful if you need a fixed
+ number of characters in the output, but zeroes are too distracting.
+
+These are GNU extensions.
+
+ Here is an example illustrating the differences:
+
+ date +%d/%m -d "Feb 1"
+ => 01/02
+ date +%-d/%-m -d "Feb 1"
+ => 1/2
+ date +%_d/%_m -d "Feb 1"
+ => 1/ 2
+
+
+File: coreutils.info, Node: Setting the time, Next: Options for date, Prev: Padding, Up: date invocation
+
+21.1.5 Setting the time
+-----------------------
+
+If given an argument that does not start with `+', `date' sets the
+system clock to the time and date specified by that argument (as
+described below). You must have appropriate privileges to set the
+system clock. The `--date' and `--set' options may not be used with
+such an argument. The `--universal' option may be used with such an
+argument to indicate that the specified time and date are relative to
+Coordinated Universal Time rather than to the local time zone.
+
+ The argument must consist entirely of digits, which have the
+following meaning:
+
+`MM'
+ month
+
+`DD'
+ day within month
+
+`hh'
+ hour
+
+`mm'
+ minute
+
+`CC'
+ first two digits of year (optional)
+
+`YY'
+ last two digits of year (optional)
+
+`ss'
+ second (optional)
+
+ The `--set' option also sets the system clock; see the next section.
+
+
+File: coreutils.info, Node: Options for date, Next: Examples of date, Prev: Setting the time, Up: date invocation
+
+21.1.6 Options for `date'
+-------------------------
+
+The program accepts the following options. Also see *Note Common
+options::.
+
+`-d DATESTR'
+`--date=DATESTR'
+ Display the time and date specified in DATESTR instead of the
+ current time and date. DATESTR can be in almost any common
+ format. It can contain month names, time zones, `am' and `pm',
+ `yesterday', etc. For example, `--date="2004-02-27
+ 14:19:13.489392193 +0530"' specifies the instant of time that is
+ 489,392,193 nanoseconds after February 27, 2004 at 2:19:13 PM in a
+ time zone that is 5 hours and 30 minutes east of UTC. *Note Date
+ input formats::.
+
+`-f DATEFILE'
+`--file=DATEFILE'
+ Parse each line in DATEFILE as with `-d' and display the resulting
+ time and date. If DATEFILE is `-', use standard input. This is
+ useful when you have many dates to process, because the system
+ overhead of starting up the `date' executable many times can be
+ considerable.
+
+`-I TIMESPEC'
+`--iso-8601[=TIMESPEC]'
+ Display the date using the ISO 8601 format, `%Y-%m-%d'.
+
+ The argument TIMESPEC specifies the number of additional terms of
+ the time to include. It can be one of the following:
+ `auto'
+ The default behavior: print just the date.
+
+ `hours'
+ Append the hour of the day to the date.
+
+ `minutes'
+ Append the hours and minutes.
+
+ `seconds'
+ Append the hours, minutes, and seconds.
+
+ `ns'
+ Append the hours, minutes, seconds, and nanoseconds.
+
+ If showing any time terms, then include the time zone using the
+ format `%z'.
+
+ If TIMESPEC is omitted with `--iso-8601', the default is `auto'.
+ On older systems, GNU `date' instead supports an obsolete option
+ `-I[TIMESPEC]', where TIMESPEC defaults to `auto'. POSIX
+ 1003.1-2001 (*note Standards conformance::) does not allow `-I'
+ without an argument; use `--iso-8601' instead.
+
+`-R'
+`--rfc-822'
+`--rfc-2822'
+ Display the time and date using the format `%a, %d %b %Y %H:%M:%S
+ %z', evaluated in the C locale so abbreviations are always in
+ English. For example:
+
+ Fri, 1 Aug 2003 23:05:56 -0700
+
+ This format conforms to RFC 2822
+ (ftp://ftp.rfc-editor.org/in-notes/rfc2822.txt) and RFC 822
+ (ftp://ftp.rfc-editor.org/in-notes/rfc822.txt), the current and
+ previous standards for Internet email.
+
+`-r FILE'
+`--reference=FILE'
+ Display the time and date reference according to the last
+ modification time of FILE, instead of the current time and date.
+
+`-s DATESTR'
+`--set=DATESTR'
+ Set the time and date to DATESTR. See `-d' above.
+
+`-u'
+`--utc'
+`--universal'
+ Use Coordinated Universal Time (UTC) by operating as if the `TZ'
+ environment variable were set to the string `UTC0'. Coordinated
+ Universal Time is often called "Greenwich Mean Time" (GMT) for
+ historical reasons.
+
+
+File: coreutils.info, Node: Examples of date, Prev: Options for date, Up: date invocation
+
+21.1.7 Examples of `date'
+-------------------------
+
+Here are a few examples. Also see the documentation for the `-d'
+option in the previous section.
+
+ * To print the date of the day before yesterday:
+
+ date --date='2 days ago'
+
+ * To print the date of the day three months and one day hence:
+
+ date --date='3 months 1 day'
+
+ * To print the day of year of Christmas in the current year:
+
+ date --date='25 Dec' +%j
+
+ * To print the current full month name and the day of the month:
+
+ date '+%B %d'
+
+ But this may not be what you want because for the first nine days
+ of the month, the `%d' expands to a zero-padded two-digit field,
+ for example `date -d 1may '+%B %d'' will print `May 01'.
+
+ * To print a date without the leading zero for one-digit days of the
+ month, you can use the (GNU extension) `-' modifier to suppress
+ the padding altogether:
+
+ date -d 1may '+%B %-d
+
+ * To print the current date and time in the format required by many
+ non-GNU versions of `date' when setting the system clock:
+
+ date +%m%d%H%M%Y.%S
+
+ * To set the system clock forward by two minutes:
+
+ date --set='+2 minutes'
+
+ * To print the date in the format specified by RFC-2822, use `date
+ --rfc-2822'. I just did and saw this:
+
+ Thu, 31 Jul 2003 13:13:05 -0700
+
+ * To convert a date string to the number of seconds since the epoch
+ (which is 1970-01-01 00:00:00 UTC), use the `--date' option with
+ the `%s' format. That can be useful in sorting and/or graphing
+ and/or comparing data by date. The following command outputs the
+ number of the seconds since the epoch for the time two minutes
+ after the epoch:
+
+ date --date='1970-01-01 00:02:00 +0000' +%s
+ 120
+
+ If you do not specify time zone information in the date string,
+ `date' uses your computer's idea of the time zone when
+ interpreting the string. For example, if your computer's time
+ zone is that of Cambridge, Massachusetts, which was then 5 hours
+ (i.e., 18,000 seconds) behind UTC:
+
+ # local time zone used
+ date --date='1970-01-01 00:02:00' +%s
+ 18120
+
+ * If you're sorting or graphing dated data, your raw date values may
+ be represented as seconds since the epoch. But few people can
+ look at the date `946684800' and casually note "Oh, that's the
+ first second of the year 2000 in Greenwich, England."
+
+ date --date='2000-01-01 UTC' +%s
+ 946684800
+
+ An alternative is to use the `--utc' (`-u') option. Then you may
+ omit `UTC' from the date string. Although this produces the same
+ result for `%s' and many other format sequences, with a time zone
+ offset different from zero, it would give a different result for
+ zone-dependent formats like `%z'.
+
+ date -u --date=2000-01-01 +%s
+ 946684800
+
+ To convert such an unwieldy number of seconds back to a more
+ readable form, use a command like this:
+
+ # local time zone used
+ date -d '1970-01-01 UTC 946684800 seconds' +"%Y-%m-%d %T %z"
+ 1999-12-31 19:00:00 -0500
+
+ Often it is better to output UTC-relative date and time:
+
+ date -u -d '1970-01-01 946684800 seconds' +"%Y-%m-%d %T %z"
+ 2000-01-01 00:00:00 +0000
+
+
+
+File: coreutils.info, Node: uname invocation, Next: hostname invocation, Prev: date invocation, Up: System context
+
+21.2 `uname': Print system information
+======================================
+
+`uname' prints information about the machine and operating system it is
+run on. If no options are given, `uname' acts as if the `-s' option
+were given. Synopsis:
+
+ uname [OPTION]...
+
+ If multiple options or `-a' are given, the selected information is
+printed in this order:
+
+ KERNEL-NAME NODENAME KERNEL-RELEASE KERNEL-VERSION
+ MACHINE PROCESSOR HARDWARE-PLATFORM OPERATING-SYSTEM
+
+ The information may contain internal spaces, so such output cannot be
+parsed reliably. In the following example, RELEASE is
+`2.2.18ss.e820-bda652a #4 SMP Tue Jun 5 11:24:08 PDT 2001':
+
+ uname -a
+ => Linux dum 2.2.18 #4 SMP Tue Jun 5 11:24:08 PDT 2001 i686 unknown unknown GNU/Linux
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-a'
+`--all'
+ Print all of the below information.
+
+`-i'
+`--hardware-platform'
+ Print the hardware platform name (sometimes called the hardware
+ implementation).
+
+`-m'
+`--machine'
+ Print the machine hardware name (sometimes called the hardware
+ class or hardware type).
+
+`-n'
+`--nodename'
+ Print the network node hostname.
+
+`-p'
+`--processor'
+ Print the processor type (sometimes called the instruction set
+ architecture or ISA).
+
+`-o'
+`--operating-system'
+ Print the name of the operating system.
+
+`-r'
+`--kernel-release'
+ Print the kernel release.
+
+`-s'
+`--kernel-name'
+ Print the kernel name. POSIX 1003.1-2001 (*note Standards
+ conformance::) calls this "the implementation of the operating
+ system", because the POSIX specification itself has no notion of
+ "kernel". The kernel name might be the same as the operating
+ system name printed by the `-o' or `--operating-system' option,
+ but it might differ. Some operating systems (e.g., FreeBSD,
+ HP-UX) have the same name as their underlying kernels; others
+ (e.g., GNU/Linux, Solaris) do not.
+
+`-v'
+`--kernel-version'
+ Print the kernel version.
+
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: hostname invocation, Next: hostid invocation, Prev: uname invocation, Up: System context
+
+21.3 `hostname': Print or set system name
+=========================================
+
+With no arguments, `hostname' prints the name of the current host
+system. With one argument, it sets the current host name to the
+specified string. You must have appropriate privileges to set the host
+name. Synopsis:
+
+ hostname [NAME]
+
+ The only options are `--help' and `--version'. *Note Common
+options::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: hostid invocation, Prev: hostname invocation, Up: System context
+
+21.4 `hostid': Print numeric host identifier.
+=============================================
+
+`hostid' prints the numeric identifier of the current host in
+hexadecimal. This command accepts no arguments. The only options are
+`--help' and `--version'. *Note Common options::.
+
+ For example, here's what it prints on one system I use:
+
+ $ hostid
+ 1bac013d
+
+ On that system, the 32-bit quantity happens to be closely related to
+the system's Internet address, but that isn't always the case.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Modified command invocation, Next: Process control, Prev: System context, Up: Top
+
+22 Modified command invocation
+******************************
+
+This section describes commands that run other commands in some context
+different than the current one: a modified environment, as a different
+user, etc.
+
+* Menu:
+
+* chroot invocation:: Modify the root directory.
+* env invocation:: Modify environment variables.
+* nice invocation:: Modify scheduling priority.
+* nohup invocation:: Immunize to hangups.
+* su invocation:: Modify user and group id.
+
+
+File: coreutils.info, Node: chroot invocation, Next: env invocation, Up: Modified command invocation
+
+22.1 `chroot': Run a command with a different root directory
+============================================================
+
+`chroot' runs a command with a specified root directory. On many
+systems, only the super-user can do this. Synopses:
+
+ chroot NEWROOT [COMMAND [ARGS]...]
+ chroot OPTION
+
+ Ordinarily, file names are looked up starting at the root of the
+directory structure, i.e., `/'. `chroot' changes the root to the
+directory NEWROOT (which must exist) and then runs COMMAND with
+optional ARGS. If COMMAND is not specified, the default is the value
+of the `SHELL' environment variable or `/bin/sh' if not set, invoked
+with the `-i' option. COMMAND must not be a special built-in utility
+(*note Special built-in utilities::).
+
+ The only options are `--help' and `--version'. *Note Common
+options::. Options must precede operands.
+
+ Here are a few tips to help avoid common problems in using chroot.
+To start with a simple example, make COMMAND refer to a statically
+linked binary. If you were to use a dynamically linked executable, then
+you'd have to arrange to have the shared libraries in the right place
+under your new root directory.
+
+ For example, if you create a statically linked `ls' executable, and
+put it in `/tmp/empty', you can run this command as root:
+
+ $ chroot /tmp/empty /ls -Rl /
+
+ Then you'll see output like this:
+
+ /:
+ total 1023
+ -rwxr-xr-x 1 0 0 1041745 Aug 16 11:17 ls
+
+ If you want to use a dynamically linked executable, say `bash', then
+first run `ldd bash' to see what shared objects it needs. Then, in
+addition to copying the actual binary, also copy the listed files to
+the required positions under your intended new root directory.
+Finally, if the executable requires any other files (e.g., data, state,
+device files), copy them into place, too.
+
+ Exit status:
+
+ 1 if `chroot' itself fails
+ 126 if COMMAND is found but cannot be invoked
+ 127 if COMMAND cannot be found
+ the exit status of COMMAND otherwise
+
+
+File: coreutils.info, Node: env invocation, Next: nice invocation, Prev: chroot invocation, Up: Modified command invocation
+
+22.2 `env': Run a command in a modified environment
+===================================================
+
+`env' runs a command with a modified environment. Synopses:
+
+ env [OPTION]... [NAME=VALUE]... [COMMAND [ARGS]...]
+ env
+
+ Operands of the form `VARIABLE=VALUE' set the environment variable
+VARIABLE to value VALUE. VALUE may be empty (`VARIABLE='). Setting a
+variable to an empty value is different from unsetting it. These
+operands are evaluated left-to-right, so if two operands mention the
+same variable the earlier is ignored.
+
+ Environment variable names can be empty, and can contain any
+characters other than `=' and the null character (ASCII NUL). However,
+it is wise to limit yourself to names that consist solely of
+underscores, digits, and ASCII letters, and that begin with a
+non-digit, as applications like the shell do not work well with other
+names.
+
+ The first operand that does not contain the character `=' specifies
+the program to invoke; it is searched for according to the `PATH'
+environment variable. Any remaining arguments are passed as arguments
+to that program. The program should not be a special built-in utility
+(*note Special built-in utilities::).
+
+ If no command name is specified following the environment
+specifications, the resulting environment is printed. This is like
+specifying the `printenv' program.
+
+ The program accepts the following options. Also see *Note Common
+options::. Options must precede operands.
+
+`-u NAME'
+`--unset=NAME'
+ Remove variable NAME from the environment, if it was in the
+ environment.
+
+`-'
+`-i'
+`--ignore-environment'
+ Start with an empty environment, ignoring the inherited
+ environment.
+
+
+ Exit status:
+
+ 0 if no COMMAND is specified and the environment is output
+ 1 if `env' itself fails
+ 126 if COMMAND is found but cannot be invoked
+ 127 if COMMAND cannot be found
+ the exit status of COMMAND otherwise
+
+
+File: coreutils.info, Node: nice invocation, Next: nohup invocation, Prev: env invocation, Up: Modified command invocation
+
+22.3 `nice': Run a command with modified scheduling priority
+============================================================
+
+`nice' prints or modifies a process's "nice value", a parameter that
+affects the process's scheduling priority. Synopsis:
+
+ nice [OPTION]... [COMMAND [ARG]...]
+
+ If no arguments are given, `nice' prints the current nice value,
+which it inherited. Otherwise, `nice' runs the given COMMAND with its
+nice value adjusted. By default, its nice value is incremented by 10.
+
+ Nice values range at least from -20 (resulting in the most favorable
+scheduling) through 19 (the least favorable). Some systems may have a
+wider range of nice values; conversely, other systems may enforce more
+restrictive limits. An attempt to set the nice value outside the
+supported range is treated as an attempt to use the minimum or maximum
+supported value.
+
+ COMMAND must not be a special built-in utility (*note Special
+built-in utilities::).
+
+ Because many shells have a built-in `nice' command, using an
+unadorned `nice' in a script or interactively may get you different
+functionality than that described here.
+
+ The program accepts the following option. Also see *Note Common
+options::. Options must precede operands.
+
+`-n ADJUSTMENT'
+`--adjustment=ADJUSTMENT'
+ Add ADJUSTMENT instead of 10 to the command's nice value. If
+ ADJUSTMENT is negative and you lack appropriate privileges, `nice'
+ issues a warning but otherwise acts as if you specified a zero
+ adjustment.
+
+ On older systems, `nice' supports an obsolete option
+ `-ADJUSTMENT'. POSIX 1003.1-2001 (*note Standards conformance::)
+ does not allow this; use `-n ADJUSTMENT' instead.
+
+
+ Exit status:
+
+ 0 if no COMMAND is specified and the current priority is output
+ 1 if `nice' itself fails
+ 126 if COMMAND is found but cannot be invoked
+ 127 if COMMAND cannot be found
+ the exit status of COMMAND otherwise
+
+ It is sometimes useful to run non-interactive programs with reduced
+priority.
+
+ $ nice factor 4611686018427387903
+
+ Since `nice' prints the current priority, you can invoke it through
+itself to demonstrate how it works.
+
+ The default behavior is to increase the nice value by `10':
+
+ $ nice
+ 0
+ $ nice nice
+ 10
+ $ nice -n 10 nice
+ 10
+
+ The ADJUSTMENT is relative to the current nice value. In the next
+example, the first `nice' invocation runs the second one with nice
+value 10, and it in turn runs the final one with a nice value that is 3
+more:
+
+ $ nice nice -n 3 nice
+ 13
+
+ Specifying a nice value larger than the supported range is the same
+as specifying the maximum supported value:
+
+ $ nice -n 10000000000 nice
+ 19
+
+ Only a privileged user may run a process with higher priority:
+
+ $ nice -n -1 nice
+ nice: cannot set priority: Permission denied
+ 0
+ $ sudo nice -n -1 nice
+ -1
+
+
+File: coreutils.info, Node: nohup invocation, Next: su invocation, Prev: nice invocation, Up: Modified command invocation
+
+22.4 `nohup': Run a command immune to hangups
+=============================================
+
+`nohup' runs the given COMMAND with hangup signals ignored, so that the
+command can continue running in the background after you log out.
+Synopsis:
+
+ nohup COMMAND [ARG]...
+
+ If standard output is a terminal, it is redirected so that it is
+appended to the file `nohup.out'; if that cannot be written to, it is
+appended to the file `$HOME/nohup.out'. If that cannot be written to,
+the command is not run. If standard output is not a terminal, then the
+standard output of COMMAND will be the same as that of `nohup'.
+
+ If `nohup' creates either `nohup.out' or `$HOME/nohup.out', it
+creates it with no "group" or "other" access permissions. It does not
+change the permissions if the output file already existed.
+
+ If standard error is a terminal, it is redirected to the same file
+descriptor as the standard output.
+
+ `nohup' does not automatically put the command it runs in the
+background; you must do that explicitly, by ending the command line
+with an `&'. Also, `nohup' does not change the scheduling priority of
+COMMAND; use `nice' for that, e.g., `nohup nice COMMAND'.
+
+ COMMAND must not be a special built-in utility (*note Special
+built-in utilities::).
+
+ The only options are `--help' and `--version'. *Note Common
+options::. Options must precede operands.
+
+ Exit status:
+
+ 126 if COMMAND is found but cannot be invoked
+ 127 if `nohup' itself fails or if COMMAND cannot be found
+ the exit status of COMMAND otherwise
+
+
+File: coreutils.info, Node: su invocation, Prev: nohup invocation, Up: Modified command invocation
+
+22.5 `su': Run a command with substitute user and group id
+==========================================================
+
+`su' allows one user to temporarily become another user. It runs a
+command (often an interactive shell) with the real and effective user
+id, group id, and supplemental groups of a given USER. Synopsis:
+
+ su [OPTION]... [USER [ARG]...]
+
+ If no USER is given, the default is `root', the super-user. The
+shell to use is taken from USER's `passwd' entry, or `/bin/sh' if none
+is specified there. If USER has a password, `su' prompts for the
+password unless run by a user with effective user id of zero (the
+super-user).
+
+ By default, `su' does not change the current directory. It sets the
+environment variables `HOME' and `SHELL' from the password entry for
+USER, and if USER is not the super-user, sets `USER' and `LOGNAME' to
+USER. By default, the shell is not a login shell.
+
+ Any additional ARGs are passed as additional arguments to the shell.
+
+ GNU `su' does not treat `/bin/sh' or any other shells specially
+(e.g., by setting `argv[0]' to `-su', passing `-c' only to certain
+shells, etc.).
+
+ `su' can optionally be compiled to use `syslog' to report failed,
+and optionally successful, `su' attempts. (If the system supports
+`syslog'.) However, GNU `su' does not check if the user is a member of
+the `wheel' group; see below.
+
+ The program accepts the following options. Also see *Note Common
+options::.
+
+`-c COMMAND'
+`--command=COMMAND'
+ Pass COMMAND, a single command line to run, to the shell with a
+ `-c' option instead of starting an interactive shell.
+
+`-f'
+`--fast'
+ Pass the `-f' option to the shell. This probably only makes sense
+ if the shell run is `csh' or `tcsh', for which the `-f' option
+ prevents reading the startup file (`.cshrc'). With Bourne-like
+ shells, the `-f' option disables file name pattern expansion
+ (globbing), which is not likely to be useful.
+
+`-'
+`-l'
+`--login'
+ Make the shell a login shell. This means the following. Unset all
+ environment variables except `TERM', `HOME', and `SHELL' (which
+ are set as described above), and `USER' and `LOGNAME' (which are
+ set, even for the super-user, as described above), and set `PATH'
+ to a compiled-in default value. Change to USER's home directory.
+ Prepend `-' to the shell's name, intended to make it read its
+ login startup file(s).
+
+`-m'
+`-p'
+`--preserve-environment'
+ Do not change the environment variables `HOME', `USER', `LOGNAME',
+ or `SHELL'. Run the shell given in the environment variable
+ `SHELL' instead of the shell from USER's passwd entry, unless the
+ user running `su' is not the superuser and USER's shell is
+ restricted. A "restricted shell" is one that is not listed in the
+ file `/etc/shells', or in a compiled-in list if that file does not
+ exist. Parts of what this option does can be overridden by
+ `--login' and `--shell'.
+
+`-s SHELL'
+`--shell=SHELL'
+ Run SHELL instead of the shell from USER's passwd entry, unless
+ the user running `su' is not the superuser and USER's shell is
+ restricted (see `-m' just above).
+
+
+ Exit status:
+
+ 1 if `su' itself fails
+ 126 if subshell is found but cannot be invoked
+ 127 if subshell cannot be found
+ the exit status of the subshell otherwise
+
+22.5.1 Why GNU `su' does not support the `wheel' group
+------------------------------------------------------
+
+(This section is by Richard Stallman.)
+
+ Sometimes a few of the users try to hold total power over all the
+rest. For example, in 1984, a few users at the MIT AI lab decided to
+seize power by changing the operator password on the Twenex system and
+keeping it secret from everyone else. (I was able to thwart this coup
+and give power back to the users by patching the kernel, but I wouldn't
+know how to do that in Unix.)
+
+ However, occasionally the rulers do tell someone. Under the usual
+`su' mechanism, once someone learns the root password who sympathizes
+with the ordinary users, he or she can tell the rest. The "wheel
+group" feature would make this impossible, and thus cement the power of
+the rulers.
+
+ I'm on the side of the masses, not that of the rulers. If you are
+used to supporting the bosses and sysadmins in whatever they do, you
+might find this idea strange at first.
+
+
+File: coreutils.info, Node: Process control, Next: Delaying, Prev: Modified command invocation, Up: Top
+
+23 Process control
+******************
+
+* Menu:
+
+* kill invocation:: Sending a signal to processes.
+
+
+File: coreutils.info, Node: kill invocation, Up: Process control
+
+23.1 `kill': Send a signal to processes
+=======================================
+
+The `kill' command sends a signal to processes, causing them to
+terminate or otherwise act upon receiving the signal in some way.
+Alternatively, it lists information about signals. Synopses:
+
+ kill [-s SIGNAL | --signal SIGNAL | -SIGNAL] PID...
+ kill [-l | --list | -t | --table] [SIGNAL]...
+
+ The first form of the `kill' command sends a signal to all PID
+arguments. The default signal to send if none is specified is `TERM'.
+The special signal number `0' does not denote a valid signal, but can
+be used to test whether the PID arguments specify processes to which a
+signal could be sent.
+
+ If PID is positive, the signal is sent to the process with the
+process id PID. If PID is zero, the signal is sent to all processes in
+the process group of the current process. If PID is -1, the signal is
+sent to all processes for which the user has permission to send a
+signal. If PID is less than -1, the signal is sent to all processes in
+the process group that equals the absolute value of PID.
+
+ If PID is not positive, a system-dependent set of system processes
+is excluded from the list of processes to which the signal is sent.
+
+ If a negative PID argument is desired as the first one, it should be
+preceded by `--'. However, as a common extension to POSIX, `--' is not
+required with `kill -SIGNAL -PID'. The following commands are
+equivalent:
+
+ kill -15 -1
+ kill -TERM -1
+ kill -s TERM -- -1
+ kill -- -1
+
+ The first form of the `kill' command succeeds if every PID argument
+specifies at least one process that the signal was sent to.
+
+ The second form of the `kill' command lists signal information.
+Either the `-l' or `--list' option, or the `-t' or `--table' option
+must be specified. Without any SIGNAL argument, all supported signals
+are listed. The output of `-l' or `--list' is a list of the signal
+names, one per line; if SIGNAL is already a name, the signal number is
+printed instead. The output of `-t' or `--table' is a table of signal
+numbers, names, and descriptions. This form of the `kill' command
+succeeds if all SIGNAL arguments are valid and if there is no output
+error.
+
+ The `kill' command also supports the `--help' and `--version'
+options. *Note Common options::.
+
+ A SIGNAL may be a signal name like `HUP', or a signal number like
+`1', or an exit status of a process terminated by the signal. A signal
+name can be given in canonical form or prefixed by `SIG'. The case of
+the letters is ignored, except for the `-SIGNAL' option which must use
+upper case to avoid ambiguity with lower case option letters. The
+following signal names and numbers are supported on all POSIX compliant
+systems:
+
+`HUP'
+ 1. Hangup.
+
+`INT'
+ 2. Terminal interrupt.
+
+`QUIT'
+ 3. Terminal quit.
+
+`ABRT'
+ 6. Process abort.
+
+`KILL'
+ 9. Kill (cannot be caught or ignored).
+
+`ALRM'
+ 14. Alarm Clock.
+
+`TERM'
+ 15. Termination.
+
+Other supported signal names have system-dependent corresponding
+numbers. All systems conforming to POSIX 1003.1-2001 also support the
+following signals:
+
+`BUS'
+ Access to an undefined portion of a memory object.
+
+`CHLD'
+ Child process terminated, stopped, or continued.
+
+`CONT'
+ Continue executing, if stopped.
+
+`FPE'
+ Erroneous arithmetic operation.
+
+`ILL'
+ Illegal Instruction.
+
+`PIPE'
+ Write on a pipe with no one to read it.
+
+`SEGV'
+ Invalid memory reference.
+
+`STOP'
+ Stop executing (cannot be caught or ignored).
+
+`TSTP'
+ Terminal stop.
+
+`TTIN'
+ Background process attempting read.
+
+`TTOU'
+ Background process attempting write.
+
+`URG'
+ High bandwidth data is available at a socket.
+
+`USR1'
+ User-defined signal 1.
+
+`USR2'
+ User-defined signal 2.
+
+POSIX 1003.1-2001 systems that support the XSI extension also support
+the following signals:
+
+`POLL'
+ Pollable event.
+
+`PROF'
+ Profiling timer expired.
+
+`SYS'
+ Bad system call.
+
+`TRAP'
+ Trace/breakpoint trap.
+
+`VTALRM'
+ Virtual timer expired.
+
+`XCPU'
+ CPU time limit exceeded.
+
+`XFSZ'
+ File size limit exceeded.
+
+POSIX 1003.1-2001 systems that support the XRT extension also support
+at least eight real-time signals called `RTMIN', `RTMIN+1', ...,
+`RTMAX-1', `RTMAX'.
+
+
+File: coreutils.info, Node: Delaying, Next: Numeric operations, Prev: Process control, Up: Top
+
+24 Delaying
+***********
+
+* Menu:
+
+* sleep invocation:: Delay for a specified time.
+
+
+File: coreutils.info, Node: sleep invocation, Up: Delaying
+
+24.1 `sleep': Delay for a specified time
+========================================
+
+`sleep' pauses for an amount of time specified by the sum of the values
+of the command line arguments. Synopsis:
+
+ sleep NUMBER[smhd]...
+
+ Each argument is a number followed by an optional unit; the default
+is seconds. The units are:
+
+`s'
+ seconds
+
+`m'
+ minutes
+
+`h'
+ hours
+
+`d'
+ days
+
+ Historical implementations of `sleep' have required that NUMBER be
+an integer. However, GNU `sleep' accepts arbitrary floating point
+numbers (using a period before any fractional digits).
+
+ The only options are `--help' and `--version'. *Note Common
+options::.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: Numeric operations, Next: File permissions, Prev: Delaying, Up: Top
+
+25 Numeric operations
+*********************
+
+These programs do numerically-related operations.
+
+* Menu:
+
+* factor invocation:: Show factors of numbers.
+* seq invocation:: Print sequences of numbers.
+
+
+File: coreutils.info, Node: factor invocation, Next: seq invocation, Up: Numeric operations
+
+25.1 `factor': Print prime factors
+==================================
+
+`factor' prints prime factors. Synopses:
+
+ factor [NUMBER]...
+ factor OPTION
+
+ If no NUMBER is specified on the command line, `factor' reads
+numbers from standard input, delimited by newlines, tabs, or spaces.
+
+ The only options are `--help' and `--version'. *Note Common
+options::.
+
+ The algorithm it uses is not very sophisticated, so for some inputs
+`factor' runs for a long time. The hardest numbers to factor are the
+products of large primes. Factoring the product of the two largest
+32-bit prime numbers takes about 80 seconds of CPU time on a 1.6 GHz
+Athlon.
+
+ $ p=`echo '4294967279 * 4294967291'|bc`
+ $ factor $p
+ 18446743979220271189: 4294967279 4294967291
+
+ Similarly, it takes about 80 seconds for GNU factor (from
+coreutils-5.1.2) to "factor" the largest 64-bit prime:
+
+ $ factor 18446744073709551557
+ 18446744073709551557: 18446744073709551557
+
+ In contrast, `factor' factors the largest 64-bit number in just over
+a tenth of a second:
+
+ $ factor `echo '2^64-1'|bc`
+ 18446744073709551615: 3 5 17 257 641 65537 6700417
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: seq invocation, Prev: factor invocation, Up: Numeric operations
+
+25.2 `seq': Print numeric sequences
+===================================
+
+`seq' prints a sequence of numbers to standard output. Synopses:
+
+ seq [OPTION]... LAST
+ seq [OPTION]... FIRST LAST
+ seq [OPTION]... FIRST INCREMENT LAST
+
+ `seq' prints the numbers from FIRST to LAST by INCREMENT. By
+default, each number is printed on a separate line. When INCREMENT is
+not specified, it defaults to `1', even when FIRST is larger than LAST.
+FIRST also defaults to `1'. So `seq 1' prints `1', but `seq 0' and
+`seq 10 5' produce no output. Floating-point numbers may be specified
+(using a period before any fractional digits).
+
+ The program accepts the following options. Also see *Note Common
+options::. Options must precede operands.
+
+`-f FORMAT'
+`--format=FORMAT'
+ Print all numbers using FORMAT; default `%g'. FORMAT must contain
+ exactly one of the floating point output formats `%e', `%f', or
+ `%g'.
+
+`-s STRING'
+`--separator=STRING'
+ Separate numbers with STRING; default is a newline. The output
+ always terminates with a newline.
+
+`-w'
+`--equal-width'
+ Print all numbers with the same width, by padding with leading
+ zeroes. (To have other kinds of padding, use `--format').
+
+
+ If you want to use `seq' to print sequences of large integer values,
+don't use the default `%g' format since it can result in loss of
+precision:
+
+ $ seq 1000000 1000001
+ 1e+06
+ 1e+06
+
+ Instead, you can use the format, `%1.f', to print large decimal
+numbers with no exponent and no decimal point.
+
+ $ seq --format=%1.f 1000000 1000001
+ 1000000
+ 1000001
+
+ If you want hexadecimal output, you can use `printf' to perform the
+conversion:
+
+ $ printf %x'\n' `seq -f %1.f 1048575 1024 1050623`
+ fffff
+ 1003ff
+ 1007ff
+
+ For very long lists of numbers, use xargs to avoid system
+limitations on the length of an argument list:
+
+ $ seq -f %1.f 1000000 | xargs printf %x'\n' | tail -n 3
+ f423e
+ f423f
+ f4240
+
+ To generate octal output, use the printf `%o' format instead of
+`%x'. Note however that using printf might not work for numbers
+outside the usual 32-bit range:
+
+ $ printf "%x\n" `seq -f %1.f 4294967295 4294967296`
+ ffffffff
+ bash: printf: 4294967296: Numerical result out of range
+
+ On most systems, seq can produce whole-number output for values up to
+`2^53', so here's a more general approach to base conversion that also
+happens to be more robust for such large numbers. It works by using
+`bc' and setting its output radix variable, OBASE, to `16' in this case
+to produce hexadecimal output.
+
+ $ (echo obase=16; seq -f %1.f 4294967295 4294967296)|bc
+ FFFFFFFF
+ 100000000
+
+ Be careful when using `seq' with a fractional INCREMENT, otherwise
+you may see surprising results. Most people would expect to see `0.3'
+printed as the last number in this example:
+
+ $ seq -s ' ' 0 .1 .3
+ 0 0.1 0.2
+
+ But that doesn't happen on most systems because `seq' is implemented
+using binary floating point arithmetic (via the C `double' type)--which
+means some decimal numbers like `.1' cannot be represented exactly.
+That in turn means some nonintuitive conditions like `.1 * 3 > .3' will
+end up being true.
+
+ To work around that in the above example, use a slightly larger
+number as the LAST value:
+
+ $ seq -s ' ' 0 .1 .31
+ 0 0.1 0.2 0.3
+
+ In general, when using an INCREMENT with a fractional part, where
+(LAST - FIRST) / INCREMENT is (mathematically) a whole number, specify
+a slightly larger (or smaller, if INCREMENT is negative) value for LAST
+to ensure that LAST is the final value printed by seq.
+
+ An exit status of zero indicates success, and a nonzero value
+indicates failure.
+
+
+File: coreutils.info, Node: File permissions, Next: Date input formats, Prev: Numeric operations, Up: Top
+
+26 File permissions
+*******************
+
+Each file has a set of "permissions" that control the kinds of access
+that users have to that file. The permissions for a file are also
+called its "access mode". They can be represented either in symbolic
+form or as an octal number.
+
+* Menu:
+
+* Mode Structure:: Structure of file permissions.
+* Symbolic Modes:: Mnemonic permissions representation.
+* Numeric Modes:: Permissions as octal numbers.
+
+
+File: coreutils.info, Node: Mode Structure, Next: Symbolic Modes, Up: File permissions
+
+26.1 Structure of File Permissions
+==================================
+
+There are three kinds of permissions that a user can have for a file:
+
+ 1. permission to read the file. For directories, this means
+ permission to list the contents of the directory.
+
+ 2. permission to write to (change) the file. For directories, this
+ means permission to create and remove files in the directory.
+
+ 3. permission to execute the file (run it as a program). For
+ directories, this means permission to access files in the
+ directory.
+
+ There are three categories of users who may have different
+permissions to perform any of the above operations on a file:
+
+ 1. the file's owner;
+
+ 2. other users who are in the file's group;
+
+ 3. everyone else.
+
+ Files are given an owner and group when they are created. Usually
+the owner is the current user and the group is the group of the
+directory the file is in, but this varies with the operating system, the
+file system the file is created on, and the way the file is created.
+You can change the owner and group of a file by using the `chown' and
+`chgrp' commands.
+
+ In addition to the three sets of three permissions listed above, a
+file's permissions have three special components, which affect only
+executable files (programs) and, on some systems, directories:
+
+ 1. set the process's effective user ID to that of the file upon
+ execution (called the "setuid bit"). No effect on directories.
+
+ 2. set the process's effective group ID to that of the file upon
+ execution (called the "setgid bit"). For directories on some
+ systems, put files created in the directory into the same group as
+ the directory, no matter what group the user who creates them is
+ in.
+
+ 3. save the program's text image on the swap device so it will load
+ more quickly when run (called the "sticky bit"). For directories
+ on some systems, prevent users from removing or renaming a file in
+ a directory unless they own the file or the directory; this is
+ called the "restricted deletion flag" for the directory.
+
+ In addition to the permissions listed above, there may be file
+attributes specific to the file system, e.g: access control lists
+(ACLs), whether a file is compressed, whether a file can be modified
+(immutability), whether a file can be dumped. These are usually set
+using programs specific to the file system. For example:
+
+ext2
+ On GNU and Linux/GNU the file permissions ("attributes") specific
+ to the ext2 file system are set using `chattr'.
+
+FFS
+ On FreeBSD the file permissions ("flags") specific to the FFS file
+ system are set using `chrflags'.
+
+ Although a file's permission "bits" allow an operation on that file,
+that operation may still fail, because:
+
+ * the file-system-specific permissions do not permit it;
+
+ * the file system is mounted as read-only.
+
+ For example, if the immutable attribute is set on a file, it cannot
+be modified, regardless of the fact that you may have just run `chmod
+a+w FILE'.
+
+
+File: coreutils.info, Node: Symbolic Modes, Next: Numeric Modes, Prev: Mode Structure, Up: File permissions
+
+26.2 Symbolic Modes
+===================
+
+"Symbolic modes" represent changes to files' permissions as operations
+on single-character symbols. They allow you to modify either all or
+selected parts of files' permissions, optionally based on their
+previous values, and perhaps on the current `umask' as well (*note
+Umask and Protection::).
+
+ The format of symbolic modes is:
+
+ [ugoa...][[+-=][rwxXstugo...]...][,...]
+
+ The following sections describe the operators and other details of
+symbolic modes.
+
+* Menu:
+
+* Setting Permissions:: Basic operations on permissions.
+* Copying Permissions:: Copying existing permissions.
+* Changing Special Permissions:: Special permissions.
+* Conditional Executability:: Conditionally affecting executability.
+* Multiple Changes:: Making multiple changes.
+* Umask and Protection:: The effect of the umask.
+
+
+File: coreutils.info, Node: Setting Permissions, Next: Copying Permissions, Up: Symbolic Modes
+
+26.2.1 Setting Permissions
+--------------------------
+
+The basic symbolic operations on a file's permissions are adding,
+removing, and setting the permission that certain users have to read,
+write, and execute the file. These operations have the following
+format:
+
+ USERS OPERATION PERMISSIONS
+
+The spaces between the three parts above are shown for readability only;
+symbolic modes cannot contain spaces.
+
+ The USERS part tells which users' access to the file is changed. It
+consists of one or more of the following letters (or it can be empty;
+*note Umask and Protection::, for a description of what happens then).
+When more than one of these letters is given, the order that they are
+in does not matter.
+
+`u'
+ the user who owns the file;
+
+`g'
+ other users who are in the file's group;
+
+`o'
+ all other users;
+
+`a'
+ all users; the same as `ugo'.
+
+ The OPERATION part tells how to change the affected users' access to
+the file, and is one of the following symbols:
+
+`+'
+ to add the PERMISSIONS to whatever permissions the USERS already
+ have for the file;
+
+`-'
+ to remove the PERMISSIONS from whatever permissions the USERS
+ already have for the file;
+
+`='
+ to make the PERMISSIONS the only permissions that the USERS have
+ for the file.
+
+ The PERMISSIONS part tells what kind of access to the file should be
+changed; it is zero or more of the following letters. As with the
+USERS part, the order does not matter when more than one letter is
+given. Omitting the PERMISSIONS part is useful only with the `='
+operation, where it gives the specified USERS no access at all to the
+file.
+
+`r'
+ the permission the USERS have to read the file;
+
+`w'
+ the permission the USERS have to write to the file;
+
+`x'
+ the permission the USERS have to execute the file.
+
+ For example, to give everyone permission to read and write a file,
+but not to execute it, use:
+
+ a=rw
+
+ To remove write permission for from all users other than the file's
+owner, use:
+
+ go-w
+
+The above command does not affect the access that the owner of the file
+has to it, nor does it affect whether other users can read or execute
+the file.
+
+ To give everyone except a file's owner no permission to do anything
+with that file, use the mode below. Other users could still remove the
+file, if they have write permission on the directory it is in.
+
+ go=
+
+Another way to specify the same thing is:
+
+ og-rxw
+
+
+File: coreutils.info, Node: Copying Permissions, Next: Changing Special Permissions, Prev: Setting Permissions, Up: Symbolic Modes
+
+26.2.2 Copying Existing Permissions
+-----------------------------------
+
+You can base a file's permissions on its existing permissions. To do
+this, instead of using `r', `w', or `x' after the operator, you use the
+letter `u', `g', or `o'. For example, the mode
+ o+g
+ adds the permissions for users who are in a file's group to the
+permissions that other users have for the file. Thus, if the file
+started out as mode 664 (`rw-rw-r--'), the above mode would change it
+to mode 666 (`rw-rw-rw-'). If the file had started out as mode 741
+(`rwxr----x'), the above mode would change it to mode 745
+(`rwxr--r-x'). The `-' and `=' operations work analogously.
+
+
+File: coreutils.info, Node: Changing Special Permissions, Next: Conditional Executability, Prev: Copying Permissions, Up: Symbolic Modes
+
+26.2.3 Changing Special Permissions
+-----------------------------------
+
+In addition to changing a file's read, write, and execute permissions,
+you can change its special permissions. *Note Mode Structure::, for a
+summary of these permissions.
+
+ To change a file's permission to set the user ID on execution, use
+`u' in the USERS part of the symbolic mode and `s' in the PERMISSIONS
+part.
+
+ To change a file's permission to set the group ID on execution, use
+`g' in the USERS part of the symbolic mode and `s' in the PERMISSIONS
+part.
+
+ To change a file's permission to stay permanently on the swap device,
+use `o' in the USERS part of the symbolic mode and `t' in the
+PERMISSIONS part.
+
+ For example, to add set user ID permission to a program, you can use
+the mode:
+
+ u+s
+
+ To remove both set user ID and set group ID permission from it, you
+can use the mode:
+
+ ug-s
+
+ To cause a program to be saved on the swap device, you can use the
+mode:
+
+ o+t
+
+ Remember that the special permissions only affect files that are
+executable, plus, on some systems, directories (on which they have
+different meanings; *note Mode Structure::). Also, the combinations
+`u+t', `g+t', and `o+s' have no effect.
+
+ The `=' operator is not very useful with special permissions; for
+example, the mode:
+
+ o=t
+
+does cause the file to be saved on the swap device, but it also removes
+all read, write, and execute permissions that users not in the file's
+group might have had for it.
+
+
+File: coreutils.info, Node: Conditional Executability, Next: Multiple Changes, Prev: Changing Special Permissions, Up: Symbolic Modes
+
+26.2.4 Conditional Executability
+--------------------------------
+
+There is one more special type of symbolic permission: if you use `X'
+instead of `x', execute permission is affected only if the file already
+had execute permission or is a directory. It affects directories'
+execute permission even if they did not initially have any execute
+permissions set.
+
+ For example, this mode:
+
+ a+X
+
+gives all users permission to execute files (or search directories) if
+anyone could before.
+
+
+File: coreutils.info, Node: Multiple Changes, Next: Umask and Protection, Prev: Conditional Executability, Up: Symbolic Modes
+
+26.2.5 Making Multiple Changes
+------------------------------
+
+The format of symbolic modes is actually more complex than described
+above (*note Setting Permissions::). It provides two ways to make
+multiple changes to files' permissions.
+
+ The first way is to specify multiple OPERATION and PERMISSIONS parts
+after a USERS part in the symbolic mode.
+
+ For example, the mode:
+
+ og+rX-w
+
+gives users other than the owner of the file read permission and, if it
+is a directory or if someone already had execute permission to it,
+gives them execute permission; and it also denies them write permission
+to the file. It does not affect the permission that the owner of the
+file has for it. The above mode is equivalent to the two modes:
+
+ og+rX
+ og-w
+
+ The second way to make multiple changes is to specify more than one
+simple symbolic mode, separated by commas. For example, the mode:
+
+ a+r,go-w
+
+gives everyone permission to read the file and removes write permission
+on it for all users except its owner. Another example:
+
+ u=rwx,g=rx,o=
+
+sets all of the non-special permissions for the file explicitly. (It
+gives users who are not in the file's group no permission at all for
+it.)
+
+ The two methods can be combined. The mode:
+
+ a+r,g+x-w
+
+gives all users permission to read the file, and gives users who are in
+the file's group permission to execute it, as well, but not permission
+to write to it. The above mode could be written in several different
+ways; another is:
+
+ u+r,g+rx,o+r,g-w
+
+
+File: coreutils.info, Node: Umask and Protection, Prev: Multiple Changes, Up: Symbolic Modes
+
+26.2.6 The Umask and Protection
+-------------------------------
+
+If the USERS part of a symbolic mode is omitted, it defaults to `a'
+(affect all users), except that any permissions that are _set_ in the
+system variable `umask' are _not affected_. The value of `umask' can
+be set using the `umask' command. Its default value varies from system
+to system.
+
+ Omitting the USERS part of a symbolic mode is generally not useful
+with operations other than `+'. It is useful with `+' because it
+allows you to use `umask' as an easily customizable protection against
+giving away more permission to files than you intended to.
+
+ As an example, if `umask' has the value 2, which removes write
+permission for users who are not in the file's group, then the mode:
+
+ +w
+
+adds permission to write to the file to its owner and to other users who
+are in the file's group, but _not_ to other users. In contrast, the
+mode:
+
+ a+w
+
+ignores `umask', and _does_ give write permission for the file to all
+users.
+
+
+File: coreutils.info, Node: Numeric Modes, Prev: Symbolic Modes, Up: File permissions
+
+26.3 Numeric Modes
+==================
+
+File permissions are stored internally as integers. As an alternative
+to giving a symbolic mode, you can give an octal (base 8) number that
+corresponds to the internal representation of the new mode. This
+number is always interpreted in octal; you do not have to add a leading
+0, as you do in C. Mode 0055 is the same as mode 55.
+
+ A numeric mode is usually shorter than the corresponding symbolic
+mode, but it is limited in that it cannot take into account a file's
+previous permissions; it can only set them absolutely.
+
+ On most systems, the permissions granted to the user, to other users
+in the file's group, and to other users not in the file's group are
+each stored as three bits, which are represented as one octal digit.
+The three special permissions are also each stored as one bit, and they
+are as a group represented as another octal digit. Here is how the
+bits are arranged, starting with the lowest valued bit:
+
+ Value in Corresponding
+ Mode Permission
+
+ Other users not in the file's group:
+ 1 Execute
+ 2 Write
+ 4 Read
+
+ Other users in the file's group:
+ 10 Execute
+ 20 Write
+ 40 Read
+
+ The file's owner:
+ 100 Execute
+ 200 Write
+ 400 Read
+
+ Special permissions:
+ 1000 Save text image on swap device
+ 2000 Set group ID on execution
+ 4000 Set user ID on execution
+
+ For example, numeric mode 4755 corresponds to symbolic mode
+`u=rwxs,go=rx', and numeric mode 664 corresponds to symbolic mode
+`ug=rw,o=r'. Numeric mode 0 corresponds to symbolic mode `ugo='.
+
+
+File: coreutils.info, Node: Date input formats, Next: Opening the software toolbox, Prev: File permissions, Up: Top
+
+27 Date input formats
+*********************
+
+First, a quote:
+
+ Our units of temporal measurement, from seconds on up to months,
+ are so complicated, asymmetrical and disjunctive so as to make
+ coherent mental reckoning in time all but impossible. Indeed, had
+ some tyrannical god contrived to enslave our minds to time, to
+ make it all but impossible for us to escape subjection to sodden
+ routines and unpleasant surprises, he could hardly have done
+ better than handing down our present system. It is like a set of
+ trapezoidal building blocks, with no vertical or horizontal
+ surfaces, like a language in which the simplest thought demands
+ ornate constructions, useless particles and lengthy
+ circumlocutions. Unlike the more successful patterns of language
+ and science, which enable us to face experience boldly or at least
+ level-headedly, our system of temporal calculation silently and
+ persistently encourages our terror of time.
+
+ ... It is as though architects had to measure length in feet,
+ width in meters and height in ells; as though basic instruction
+ manuals demanded a knowledge of five different languages. It is
+ no wonder then that we often look into our own immediate past or
+ future, last Tuesday or a week from Sunday, with feelings of
+ helpless confusion. ...
+
+ -- Robert Grudin, `Time and the Art of Living'.
+
+ This section describes the textual date representations that GNU
+programs accept. These are the strings you, as a user, can supply as
+arguments to the various programs. The C interface (via the `get_date'
+function) is not described here.
+
+* Menu:
+
+* General date syntax:: Common rules.
+* Calendar date items:: 19 Dec 1994.
+* Time of day items:: 9:20pm.
+* Time zone items:: EST, PDT, GMT.
+* Day of week items:: Monday and others.
+* Relative items in date strings:: next tuesday, 2 years ago.
+* Pure numbers in date strings:: 19931219, 1440.
+* Seconds since the Epoch:: @1078100502.
+* Specifying time zone rules:: TZ="America/New_York", TZ="UTC0".
+* Authors of get_date:: Bellovin, Eggert, Salz, Berets, et al.
+
+
+File: coreutils.info, Node: General date syntax, Next: Calendar date items, Up: Date input formats
+
+27.1 General date syntax
+========================
+
+A "date" is a string, possibly empty, containing many items separated
+by whitespace. The whitespace may be omitted when no ambiguity arises.
+The empty string means the beginning of today (i.e., midnight). Order
+of the items is immaterial. A date string may contain many flavors of
+items:
+
+ * calendar date items
+
+ * time of day items
+
+ * time zone items
+
+ * day of the week items
+
+ * relative items
+
+ * pure numbers.
+
+We describe each of these item types in turn, below.
+
+ A few ordinal numbers may be written out in words in some contexts.
+This is most useful for specifying day of the week items or relative
+items (see below). Among the most commonly used ordinal numbers, the
+word `last' stands for -1, `this' stands for 0, and `first' and `next'
+both stand for 1. Because the word `second' stands for the unit of
+time there is no way to write the ordinal number 2, but for convenience
+`third' stands for 3, `fourth' for 4, `fifth' for 5, `sixth' for 6,
+`seventh' for 7, `eighth' for 8, `ninth' for 9, `tenth' for 10,
+`eleventh' for 11 and `twelfth' for 12.
+
+ When a month is written this way, it is still considered to be
+written numerically, instead of being "spelled in full"; this changes
+the allowed strings.
+
+ In the current implementation, only English is supported for words
+and abbreviations like `AM', `DST', `EST', `first', `January',
+`Sunday', `tomorrow', and `year'.
+
+ The output of the `date' command is not always acceptable as a date
+string, not only because of the language problem, but also because
+there is no standard meaning for time zone items like `IST'. When using
+`date' to generate a date string intended to be parsed later, specify a
+date format that is independent of language and that does not use time
+zone items other than `UTC' and `Z'. Here are some ways to do this:
+
+ $ LC_ALL=C TZ=UTC0 date
+ Mon Mar 1 00:21:42 UTC 2004
+ $ TZ=UTC0 date +'%Y-%m-%d %H:%M:%SZ'
+ 2004-03-01 00:21:42Z
+ $ date --iso-8601=ns # a GNU extension
+ 2004-02-29T16:21:42,692722128-0800
+ $ date --rfc-2822 # a GNU extension
+ Sun, 29 Feb 2004 16:21:42 -0800
+ $ date +'%Y-%m-%d %H:%M:%S %z' # %z is a GNU extension.
+ 2004-02-29 16:21:42 -0800
+ $ date +'@%s.%N' # %s and %N are GNU extensions.
+ @1078100502.692722128
+
+ Alphabetic case is completely ignored in dates. Comments may be
+introduced between round parentheses, as long as included parentheses
+are properly nested. Hyphens not followed by a digit are currently
+ignored. Leading zeros on numbers are ignored.
+
+
+File: coreutils.info, Node: Calendar date items, Next: Time of day items, Prev: General date syntax, Up: Date input formats
+
+27.2 Calendar date items
+========================
+
+A "calendar date item" specifies a day of the year. It is specified
+differently, depending on whether the month is specified numerically or
+literally. All these strings specify the same calendar date:
+
+ 1972-09-24 # ISO 8601.
+ 72-9-24 # Assume 19xx for 69 through 99,
+ # 20xx for 00 through 68.
+ 72-09-24 # Leading zeros are ignored.
+ 9/24/72 # Common U.S. writing.
+ 24 September 1972
+ 24 Sept 72 # September has a special abbreviation.
+ 24 Sep 72 # Three-letter abbreviations always allowed.
+ Sep 24, 1972
+ 24-sep-72
+ 24sep72
+
+ The year can also be omitted. In this case, the last specified year
+is used, or the current year if none. For example:
+
+ 9/24
+ sep 24
+
+ Here are the rules.
+
+ For numeric months, the ISO 8601 format `YEAR-MONTH-DAY' is allowed,
+where YEAR is any positive number, MONTH is a number between 01 and 12,
+and DAY is a number between 01 and 31. A leading zero must be present
+if a number is less than ten. If YEAR is 68 or smaller, then 2000 is
+added to it; otherwise, if YEAR is less than 100, then 1900 is added to
+it. The construct `MONTH/DAY/YEAR', popular in the United States, is
+accepted. Also `MONTH/DAY', omitting the year.
+
+ Literal months may be spelled out in full: `January', `February',
+`March', `April', `May', `June', `July', `August', `September',
+`October', `November' or `December'. Literal months may be abbreviated
+to their first three letters, possibly followed by an abbreviating dot.
+It is also permitted to write `Sept' instead of `September'.
+
+ When months are written literally, the calendar date may be given as
+any of the following:
+
+ DAY MONTH YEAR
+ DAY MONTH
+ MONTH DAY YEAR
+ DAY-MONTH-YEAR
+
+ Or, omitting the year:
+
+ MONTH DAY
+
+
+File: coreutils.info, Node: Time of day items, Next: Time zone items, Prev: Calendar date items, Up: Date input formats
+
+27.3 Time of day items
+======================
+
+A "time of day item" in date strings specifies the time on a given day.
+Here are some examples, all of which represent the same time:
+
+ 20:02:00.000000
+ 20:02
+ 8:02pm
+ 20:02-0500 # In EST (U.S. Eastern Standard Time).
+
+ More generally, the time of day may be given as
+`HOUR:MINUTE:SECOND', where HOUR is a number between 0 and 23, MINUTE
+is a number between 0 and 59, and SECOND is a number between 0 and 59
+possibly followed by `.' or `,' and a fraction containing one or more
+digits. Alternatively, `:SECOND' can be omitted, in which case it is
+taken to be zero.
+
+ If the time is followed by `am' or `pm' (or `a.m.' or `p.m.'), HOUR
+is restricted to run from 1 to 12, and `:MINUTE' may be omitted (taken
+to be zero). `am' indicates the first half of the day, `pm' indicates
+the second half of the day. In this notation, 12 is the predecessor of
+1: midnight is `12am' while noon is `12pm'. (This is the zero-oriented
+interpretation of `12am' and `12pm', as opposed to the old tradition
+derived from Latin which uses `12m' for noon and `12pm' for midnight.)
+
+ The time may alternatively be followed by a time zone correction,
+expressed as `SHHMM', where S is `+' or `-', HH is a number of zone
+hours and MM is a number of zone minutes. You can also separate HH
+from MM with a colon. When a time zone correction is given this way, it
+forces interpretation of the time relative to Coordinated Universal
+Time (UTC), overriding any previous specification for the time zone or
+the local time zone. For example, `+0530' and `+05:30' both stand for
+the time zone 5.5 hours ahead of UTC (e.g., India). The MINUTE part of
+the time of day may not be elided when a time zone correction is used.
+This is the best way to specify a time zone correction by fractional
+parts of an hour.
+
+ Either `am'/`pm' or a time zone correction may be specified, but not
+both.
+
+
+File: coreutils.info, Node: Time zone items, Next: Day of week items, Prev: Time of day items, Up: Date input formats
+
+27.4 Time zone items
+====================
+
+A "time zone item" specifies an international time zone, indicated by a
+small set of letters, e.g., `UTC' or `Z' for Coordinated Universal
+Time. Any included periods are ignored. By following a
+non-daylight-saving time zone by the string `DST' in a separate word
+(that is, separated by some white space), the corresponding daylight
+saving time zone may be specified. Alternatively, a
+non-daylight-saving time zone can be followed by a time zone
+correction, to add the two values. This is normally done only for
+`UTC'; for example, `UTC+05:30' is equivalent to `+05:30'.
+
+ Time zone items other than `UTC' and `Z' are obsolescent and are not
+recommended, because they are ambiguous; for example, `EST' has a
+different meaning in Australia than in the United States. Instead,
+it's better to use unambiguous numeric time zone corrections like
+`-0500', as described in the previous section.
+
+ If neither a time zone item nor a time zone correction is supplied,
+time stamps are interpreted using the rules of the default time zone
+(*note Specifying time zone rules::).
+
+
+File: coreutils.info, Node: Day of week items, Next: Relative items in date strings, Prev: Time zone items, Up: Date input formats
+
+27.5 Day of week items
+======================
+
+The explicit mention of a day of the week will forward the date (only
+if necessary) to reach that day of the week in the future.
+
+ Days of the week may be spelled out in full: `Sunday', `Monday',
+`Tuesday', `Wednesday', `Thursday', `Friday' or `Saturday'. Days may
+be abbreviated to their first three letters, optionally followed by a
+period. The special abbreviations `Tues' for `Tuesday', `Wednes' for
+`Wednesday' and `Thur' or `Thurs' for `Thursday' are also allowed.
+
+ A number may precede a day of the week item to move forward
+supplementary weeks. It is best used in expression like `third
+monday'. In this context, `last DAY' or `next DAY' is also acceptable;
+they move one week before or after the day that DAY by itself would
+represent.
+
+ A comma following a day of the week item is ignored.
+
+
+File: coreutils.info, Node: Relative items in date strings, Next: Pure numbers in date strings, Prev: Day of week items, Up: Date input formats
+
+27.6 Relative items in date strings
+===================================
+
+"Relative items" adjust a date (or the current date if none) forward or
+backward. The effects of relative items accumulate. Here are some
+examples:
+
+ 1 year
+ 1 year ago
+ 3 years
+ 2 days
+
+ The unit of time displacement may be selected by the string `year'
+or `month' for moving by whole years or months. These are fuzzy units,
+as years and months are not all of equal duration. More precise units
+are `fortnight' which is worth 14 days, `week' worth 7 days, `day'
+worth 24 hours, `hour' worth 60 minutes, `minute' or `min' worth 60
+seconds, and `second' or `sec' worth one second. An `s' suffix on
+these units is accepted and ignored.
+
+ The unit of time may be preceded by a multiplier, given as an
+optionally signed number. Unsigned numbers are taken as positively
+signed. No number at all implies 1 for a multiplier. Following a
+relative item by the string `ago' is equivalent to preceding the unit
+by a multiplier with value -1.
+
+ The string `tomorrow' is worth one day in the future (equivalent to
+`day'), the string `yesterday' is worth one day in the past (equivalent
+to `day ago').
+
+ The strings `now' or `today' are relative items corresponding to
+zero-valued time displacement, these strings come from the fact a
+zero-valued time displacement represents the current time when not
+otherwise changed by previous items. They may be used to stress other
+items, like in `12:00 today'. The string `this' also has the meaning
+of a zero-valued time displacement, but is preferred in date strings
+like `this thursday'.
+
+ When a relative item causes the resulting date to cross a boundary
+where the clocks were adjusted, typically for daylight saving time, the
+resulting date and time are adjusted accordingly.
+
+ The fuzz in units can cause problems with relative items. For
+example, `2003-07-31 -1 month' might evaluate to 2003-07-01, because
+2003-06-31 is an invalid date. To determine the previous month more
+reliably, you can ask for the month before the 15th of the current
+month. For example:
+
+ $ date -R
+ Thu, 31 Jul 2003 13:02:39 -0700
+ $ date --date='-1 month' +'Last month was %B?'
+ Last month was July?
+ $ date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!'
+ Last month was June!
+
+ Also, take care when manipulating dates around clock changes such as
+daylight saving leaps. In a few cases these have added or subtracted
+as much as 24 hours from the clock, so it is often wise to adopt
+universal time by setting the `TZ' environment variable to `UTC0'
+before embarking on calendrical calculations.
+
+
+File: coreutils.info, Node: Pure numbers in date strings, Next: Seconds since the Epoch, Prev: Relative items in date strings, Up: Date input formats
+
+27.7 Pure numbers in date strings
+=================================
+
+The precise interpretation of a pure decimal number depends on the
+context in the date string.
+
+ If the decimal number is of the form YYYYMMDD and no other calendar
+date item (*note Calendar date items::) appears before it in the date
+string, then YYYY is read as the year, MM as the month number and DD as
+the day of the month, for the specified calendar date.
+
+ If the decimal number is of the form HHMM and no other time of day
+item appears before it in the date string, then HH is read as the hour
+of the day and MM as the minute of the hour, for the specified time of
+day. MM can also be omitted.
+
+ If both a calendar date and a time of day appear to the left of a
+number in the date string, but no relative item, then the number
+overrides the year.
+
+
+File: coreutils.info, Node: Seconds since the Epoch, Next: Specifying time zone rules, Prev: Pure numbers in date strings, Up: Date input formats
+
+27.8 Seconds since the Epoch
+============================
+
+If you precede a number with `@', it represents an internal time stamp
+as a count of seconds. The number can contain an internal decimal
+point (either `.' or `,'); any excess precision not supported by the
+internal representation is truncated toward minus infinity. Such a
+number cannot be combined with any other date item, as it specifies a
+complete time stamp.
+
+ Internally, computer times are represented as a count of seconds
+since an epoch--a well-defined point of time. On GNU and POSIX
+systems, the epoch is 1970-01-01 00:00:00 UTC, so `@0' represents this
+time, `@1' represents 1970-01-01 00:00:01 UTC, and so forth. GNU and
+most other POSIX-compliant systems support such times as an extension
+to POSIX, using negative counts, so that `@-1' represents 1969-12-31
+23:59:59 UTC.
+
+ Traditional Unix systems count seconds with 32-bit two's-complement
+integers and can represent times from 1901-12-13 20:45:52 through
+2038-01-19 03:14:07 UTC. More modern systems use 64-bit counts of
+seconds with nanosecond subcounts, and can represent all the times in
+the known lifetime of the universe to a resolution of 1 nanosecond.
+
+ On most systems, these counts ignore the presence of leap seconds.
+For example, on most systems `@915148799' represents 1998-12-31
+23:59:59 UTC, `@915148800' represents 1999-01-01 00:00:00 UTC, and
+there is no way to represent the intervening leap second 1998-12-31
+23:59:60 UTC.
+
+
+File: coreutils.info, Node: Specifying time zone rules, Next: Authors of get_date, Prev: Seconds since the Epoch, Up: Date input formats
+
+27.9 Specifying time zone rules
+===============================
+
+Normally, dates are interpreted using the rules of the current time
+zone, which in turn are specified by the `TZ' environment variable, or
+by a system default if `TZ' is not set. To specify a different set of
+default time zone rules that apply just to one date, start the date
+with a string of the form `TZ="RULE"'. The two quote characters (`"')
+must be present in the date, and any quotes or backslashes within RULE
+must be escaped by a backslash.
+
+ For example, with the GNU `date' command you can answer the question
+"What time is it in New York when a Paris clock shows 6:30am on October
+31, 2004?" by using a date beginning with `TZ="Europe/Paris"' as shown
+in the following shell transcript:
+
+ $ export TZ="America/New_York"
+ $ date --date='TZ="Europe/Paris" 2004-10-31 06:30'
+ Sun Oct 31 01:30:00 EDT 2004
+
+ In this example, the `--date' operand begins with its own `TZ'
+setting, so the rest of that operand is processed according to
+`Europe/Paris' rules, treating the string `2004-10-31 06:30' as if it
+were in Paris. However, since the output of the `date' command is
+processed according to the overall time zone rules, it uses New York
+time. (Paris was normally six hours ahead of New York in 2004, but
+this example refers to a brief Halloween period when the gap was five
+hours.)
+
+ A `TZ' value is a rule that typically names a location in the `tz'
+database (http://www.twinsun.com/tz/tz-link.htm). A recent catalog of
+location names appears in the TWiki Date and Time Gateway
+(http://twiki.org/cgi-bin/xtra/tzdate). A few non-GNU hosts require a
+colon before a location name in a `TZ' setting, e.g.,
+`TZ=":America/New_York"'.
+
+ The `tz' database includes a wide variety of locations ranging from
+`Arctic/Longyearbyen' to `Antarctica/South_Pole', but if you are at sea
+and have your own private time zone, or if you are using a non-GNU host
+that does not support the `tz' database, you may need to use a POSIX
+rule instead. Simple POSIX rules like `UTC0' specify a time zone
+without daylight saving time; other rules can specify simple daylight
+saving regimes. *Note Specifying the Time Zone with `TZ': (libc)TZ
+Variable.
+
+
+File: coreutils.info, Node: Authors of get_date, Prev: Specifying time zone rules, Up: Date input formats
+
+27.10 Authors of `get_date'
+===========================
+
+`get_date' was originally implemented by Steven M. Bellovin
+(<smb@research.att.com>) while at the University of North Carolina at
+Chapel Hill. The code was later tweaked by a couple of people on
+Usenet, then completely overhauled by Rich $alz (<rsalz@bbn.com>) and
+Jim Berets (<jberets@bbn.com>) in August, 1990. Various revisions for
+the GNU system were made by David MacKenzie, Jim Meyering, Paul Eggert
+and others.
+
+ This chapter was originally produced by Franc,ois Pinard
+(<pinard@iro.umontreal.ca>) from the `getdate.y' source code, and then
+edited by K. Berry (<kb@cs.umb.edu>).
+
+
+File: coreutils.info, Node: Opening the software toolbox, Next: GNU Free Documentation License, Prev: Date input formats, Up: Top
+
+28 Opening the Software Toolbox
+*******************************
+
+An earlier version of this chapter appeared in 2 (June 1994). It was
+written by Arnold Robbins.
+
+* Menu:
+
+* Toolbox introduction:: Toolbox introduction
+* I/O redirection:: I/O redirection
+* The who command:: The `who' command
+* The cut command:: The `cut' command
+* The sort command:: The `sort' command
+* The uniq command:: The `uniq' command
+* Putting the tools together:: Putting the tools together
+
+
+File: coreutils.info, Node: Toolbox introduction, Next: I/O redirection, Up: Opening the software toolbox
+
+Toolbox Introduction
+====================
+
+This month's column is only peripherally related to the GNU Project, in
+that it describes a number of the GNU tools on your GNU/Linux system
+and how they might be used. What it's really about is the "Software
+Tools" philosophy of program development and usage.
+
+ The software tools philosophy was an important and integral concept
+in the initial design and development of Unix (of which Linux and GNU
+are essentially clones). Unfortunately, in the modern day press of
+Internetworking and flashy GUIs, it seems to have fallen by the
+wayside. This is a shame, since it provides a powerful mental model
+for solving many kinds of problems.
+
+ Many people carry a Swiss Army knife around in their pants pockets
+(or purse). A Swiss Army knife is a handy tool to have: it has several
+knife blades, a screwdriver, tweezers, toothpick, nail file, corkscrew,
+and perhaps a number of other things on it. For the everyday, small
+miscellaneous jobs where you need a simple, general purpose tool, it's
+just the thing.
+
+ On the other hand, an experienced carpenter doesn't build a house
+using a Swiss Army knife. Instead, he has a toolbox chock full of
+specialized tools--a saw, a hammer, a screwdriver, a plane, and so on.
+And he knows exactly when and where to use each tool; you won't catch
+him hammering nails with the handle of his screwdriver.
+
+ The Unix developers at Bell Labs were all professional programmers
+and trained computer scientists. They had found that while a
+one-size-fits-all program might appeal to a user because there's only
+one program to use, in practice such programs are
+
+ a. difficult to write,
+
+ b. difficult to maintain and debug, and
+
+ c. difficult to extend to meet new situations.
+
+ Instead, they felt that programs should be specialized tools. In
+short, each program "should do one thing well." No more and no less.
+Such programs are simpler to design, write, and get right--they only do
+one thing.
+
+ Furthermore, they found that with the right machinery for hooking
+programs together, that the whole was greater than the sum of the
+parts. By combining several special purpose programs, you could
+accomplish a specific task that none of the programs was designed for,
+and accomplish it much more quickly and easily than if you had to write
+a special purpose program. We will see some (classic) examples of this
+further on in the column. (An important additional point was that, if
+necessary, take a detour and build any software tools you may need
+first, if you don't already have something appropriate in the toolbox.)
+
+
+File: coreutils.info, Node: I/O redirection, Next: The who command, Prev: Toolbox introduction, Up: Opening the software toolbox
+
+I/O Redirection
+===============
+
+Hopefully, you are familiar with the basics of I/O redirection in the
+shell, in particular the concepts of "standard input," "standard
+output," and "standard error". Briefly, "standard input" is a data
+source, where data comes from. A program should not need to either
+know or care if the data source is a disk file, a keyboard, a magnetic
+tape, or even a punched card reader. Similarly, "standard output" is a
+data sink, where data goes to. The program should neither know nor
+care where this might be. Programs that only read their standard
+input, do something to the data, and then send it on, are called
+"filters", by analogy to filters in a water pipeline.
+
+ With the Unix shell, it's very easy to set up data pipelines:
+
+ program_to_create_data | filter1 | ... | filterN > final.pretty.data
+
+ We start out by creating the raw data; each filter applies some
+successive transformation to the data, until by the time it comes out
+of the pipeline, it is in the desired form.
+
+ This is fine and good for standard input and standard output. Where
+does the standard error come in to play? Well, think about `filter1' in
+the pipeline above. What happens if it encounters an error in the data
+it sees? If it writes an error message to standard output, it will just
+disappear down the pipeline into `filter2''s input, and the user will
+probably never see it. So programs need a place where they can send
+error messages so that the user will notice them. This is standard
+error, and it is usually connected to your console or window, even if
+you have redirected standard output of your program away from your
+screen.
+
+ For filter programs to work together, the format of the data has to
+be agreed upon. The most straightforward and easiest format to use is
+simply lines of text. Unix data files are generally just streams of
+bytes, with lines delimited by the ASCII LF (Line Feed) character,
+conventionally called a "newline" in the Unix literature. (This is
+`'\n'' if you're a C programmer.) This is the format used by all the
+traditional filtering programs. (Many earlier operating systems had
+elaborate facilities and special purpose programs for managing binary
+data. Unix has always shied away from such things, under the
+philosophy that it's easiest to simply be able to view and edit your
+data with a text editor.)
+
+ OK, enough introduction. Let's take a look at some of the tools,
+and then we'll see how to hook them together in interesting ways. In
+the following discussion, we will only present those command line
+options that interest us. As you should always do, double check your
+system documentation for the full story.
+
+
+File: coreutils.info, Node: The who command, Next: The cut command, Prev: I/O redirection, Up: Opening the software toolbox
+
+The `who' Command
+=================
+
+The first program is the `who' command. By itself, it generates a list
+of the users who are currently logged in. Although I'm writing this on
+a single-user system, we'll pretend that several people are logged in:
+
+ $ who
+ -| arnold console Jan 22 19:57
+ -| miriam ttyp0 Jan 23 14:19(:0.0)
+ -| bill ttyp1 Jan 21 09:32(:0.0)
+ -| arnold ttyp2 Jan 23 20:48(:0.0)
+
+ Here, the `$' is the usual shell prompt, at which I typed `who'.
+There are three people logged in, and I am logged in twice. On
+traditional Unix systems, user names are never more than eight
+characters long. This little bit of trivia will be useful later. The
+output of `who' is nice, but the data is not all that exciting.
+
+
+File: coreutils.info, Node: The cut command, Next: The sort command, Prev: The who command, Up: Opening the software toolbox
+
+The `cut' Command
+=================
+
+The next program we'll look at is the `cut' command. This program cuts
+out columns or fields of input data. For example, we can tell it to
+print just the login name and full name from the `/etc/passwd' file.
+The `/etc/passwd' file has seven fields, separated by colons:
+
+ arnold:xyzzy:2076:10:Arnold D. Robbins:/home/arnold:/bin/bash
+
+ To get the first and fifth fields, we would use `cut' like this:
+
+ $ cut -d: -f1,5 /etc/passwd
+ -| root:Operator
+ ...
+ -| arnold:Arnold D. Robbins
+ -| miriam:Miriam A. Robbins
+ ...
+
+ With the `-c' option, `cut' will cut out specific characters (i.e.,
+columns) in the input lines. This is useful for input data that has
+fixed width fields, and does not have a field separator. For example,
+list the Monday dates for the current month:
+
+ $ cal | cut -c 3-5
+ -|Mo
+ -|
+ -| 6
+ -| 13
+ -| 20
+ -| 27
+
+
+File: coreutils.info, Node: The sort command, Next: The uniq command, Prev: The cut command, Up: Opening the software toolbox
+
+The `sort' Command
+==================
+
+Next we'll look at the `sort' command. This is one of the most
+powerful commands on a Unix-style system; one that you will often find
+yourself using when setting up fancy data plumbing.
+
+ The `sort' command reads and sorts each file named on the command
+line. It then merges the sorted data and writes it to standard output.
+It will read standard input if no files are given on the command line
+(thus making it into a filter). The sort is based on the character
+collating sequence or based on user-supplied ordering criteria.
+
+
+File: coreutils.info, Node: The uniq command, Next: Putting the tools together, Prev: The sort command, Up: Opening the software toolbox
+
+The `uniq' Command
+==================
+
+Finally (at least for now), we'll look at the `uniq' program. When
+sorting data, you will often end up with duplicate lines, lines that
+are identical. Usually, all you need is one instance of each line.
+This is where `uniq' comes in. The `uniq' program reads its standard
+input. It prints only one copy of each repeated line. It does have
+several options. Later on, we'll use the `-c' option, which prints
+each unique line, preceded by a count of the number of times that line
+occurred in the input.
+
+
+File: coreutils.info, Node: Putting the tools together, Prev: The uniq command, Up: Opening the software toolbox
+
+Putting the Tools Together
+==========================
+
+Now, let's suppose this is a large ISP server system with dozens of
+users logged in. The management wants the system administrator to
+write a program that will generate a sorted list of logged in users.
+Furthermore, even if a user is logged in multiple times, his or her
+name should only show up in the output once.
+
+ The administrator could sit down with the system documentation and
+write a C program that did this. It would take perhaps a couple of
+hundred lines of code and about two hours to write it, test it, and
+debug it. However, knowing the software toolbox, the administrator can
+instead start out by generating just a list of logged on users:
+
+ $ who | cut -c1-8
+ -| arnold
+ -| miriam
+ -| bill
+ -| arnold
+
+ Next, sort the list:
+
+ $ who | cut -c1-8 | sort
+ -| arnold
+ -| arnold
+ -| bill
+ -| miriam
+
+ Finally, run the sorted list through `uniq', to weed out duplicates:
+
+ $ who | cut -c1-8 | sort | uniq
+ -| arnold
+ -| bill
+ -| miriam
+
+ The `sort' command actually has a `-u' option that does what `uniq'
+does. However, `uniq' has other uses for which one cannot substitute
+`sort -u'.
+
+ The administrator puts this pipeline into a shell script, and makes
+it available for all the users on the system (`#' is the system
+administrator, or `root', prompt):
+
+ # cat > /usr/local/bin/listusers
+ who | cut -c1-8 | sort | uniq
+ ^D
+ # chmod +x /usr/local/bin/listusers
+
+ There are four major points to note here. First, with just four
+programs, on one command line, the administrator was able to save about
+two hours worth of work. Furthermore, the shell pipeline is just about
+as efficient as the C program would be, and it is much more efficient in
+terms of programmer time. People time is much more expensive than
+computer time, and in our modern "there's never enough time to do
+everything" society, saving two hours of programmer time is no mean
+feat.
+
+ Second, it is also important to emphasize that with the
+_combination_ of the tools, it is possible to do a special purpose job
+never imagined by the authors of the individual programs.
+
+ Third, it is also valuable to build up your pipeline in stages, as
+we did here. This allows you to view the data at each stage in the
+pipeline, which helps you acquire the confidence that you are indeed
+using these tools correctly.
+
+ Finally, by bundling the pipeline in a shell script, other users can
+use your command, without having to remember the fancy plumbing you set
+up for them. In terms of how you run them, shell scripts and compiled
+programs are indistinguishable.
+
+ After the previous warm-up exercise, we'll look at two additional,
+more complicated pipelines. For them, we need to introduce two more
+tools.
+
+ The first is the `tr' command, which stands for "transliterate."
+The `tr' command works on a character-by-character basis, changing
+characters. Normally it is used for things like mapping upper case to
+lower case:
+
+ $ echo ThIs ExAmPlE HaS MIXED case! | tr '[:upper:]' '[:lower:]'
+ -| this example has mixed case!
+
+ There are several options of interest:
+
+`-c'
+ work on the complement of the listed characters, i.e., operations
+ apply to characters not in the given set
+
+`-d'
+ delete characters in the first set from the output
+
+`-s'
+ squeeze repeated characters in the output into just one character.
+
+ We will be using all three options in a moment.
+
+ The other command we'll look at is `comm'. The `comm' command takes
+two sorted input files as input data, and prints out the files' lines
+in three columns. The output columns are the data lines unique to the
+first file, the data lines unique to the second file, and the data
+lines that are common to both. The `-1', `-2', and `-3' command line
+options _omit_ the respective columns. (This is non-intuitive and
+takes a little getting used to.) For example:
+
+ $ cat f1
+ -| 11111
+ -| 22222
+ -| 33333
+ -| 44444
+ $ cat f2
+ -| 00000
+ -| 22222
+ -| 33333
+ -| 55555
+ $ comm f1 f2
+ -| 00000
+ -| 11111
+ -| 22222
+ -| 33333
+ -| 44444
+ -| 55555
+
+ The file name `-' tells `comm' to read standard input instead of a
+regular file.
+
+ Now we're ready to build a fancy pipeline. The first application is
+a word frequency counter. This helps an author determine if he or she
+is over-using certain words.
+
+ The first step is to change the case of all the letters in our input
+file to one case. "The" and "the" are the same word when doing
+counting.
+
+ $ tr '[:upper:]' '[:lower:]' < whats.gnu | ...
+
+ The next step is to get rid of punctuation. Quoted words and
+unquoted words should be treated identically; it's easiest to just get
+the punctuation out of the way.
+
+ $ tr '[:upper:]' '[:lower:]' < whats.gnu | tr -cd '[:alnum:]_ \n' | ...
+
+ The second `tr' command operates on the complement of the listed
+characters, which are all the letters, the digits, the underscore, and
+the blank. The `\n' represents the newline character; it has to be
+left alone. (The ASCII tab character should also be included for good
+measure in a production script.)
+
+ At this point, we have data consisting of words separated by blank
+space. The words only contain alphanumeric characters (and the
+underscore). The next step is break the data apart so that we have one
+word per line. This makes the counting operation much easier, as we
+will see shortly.
+
+ $ tr '[:upper:]' '[:lower:]' < whats.gnu | tr -cd '[:alnum:]_ \n' |
+ > tr -s ' ' '\n' | ...
+
+ This command turns blanks into newlines. The `-s' option squeezes
+multiple newline characters in the output into just one. This helps us
+avoid blank lines. (The `>' is the shell's "secondary prompt." This
+is what the shell prints when it notices you haven't finished typing in
+all of a command.)
+
+ We now have data consisting of one word per line, no punctuation,
+all one case. We're ready to count each word:
+
+ $ tr '[:upper:]' '[:lower:]' < whats.gnu | tr -cd '[:alnum:]_ \n' |
+ > tr -s ' ' '\n' | sort | uniq -c | ...
+
+ At this point, the data might look something like this:
+
+ 60 a
+ 2 able
+ 6 about
+ 1 above
+ 2 accomplish
+ 1 acquire
+ 1 actually
+ 2 additional
+
+ The output is sorted by word, not by count! What we want is the most
+frequently used words first. Fortunately, this is easy to accomplish,
+with the help of two more `sort' options:
+
+`-n'
+ do a numeric sort, not a textual one
+
+`-r'
+ reverse the order of the sort
+
+ The final pipeline looks like this:
+
+ $ tr '[:upper:]' '[:lower:]' < whats.gnu | tr -cd '[:alnum:]_ \n' |
+ > tr -s ' ' '\n' | sort | uniq -c | sort -n -r
+ -| 156 the
+ -| 60 a
+ -| 58 to
+ -| 51 of
+ -| 51 and
+ ...
+
+ Whew! That's a lot to digest. Yet, the same principles apply.
+With six commands, on two lines (really one long one split for
+convenience), we've created a program that does something interesting
+and useful, in much less time than we could have written a C program to
+do the same thing.
+
+ A minor modification to the above pipeline can give us a simple
+spelling checker! To determine if you've spelled a word correctly, all
+you have to do is look it up in a dictionary. If it is not there, then
+chances are that your spelling is incorrect. So, we need a dictionary.
+The conventional location for a dictionary is `/usr/dict/words'. On my
+GNU/Linux system,(1) this is a is a sorted, 45,402 word dictionary.
+
+ Now, how to compare our file with the dictionary? As before, we
+generate a sorted list of words, one per line:
+
+ $ tr '[:upper:]' '[:lower:]' < whats.gnu | tr -cd '[:alnum:]_ \n' |
+ > tr -s ' ' '\n' | sort -u | ...
+
+ Now, all we need is a list of words that are _not_ in the
+dictionary. Here is where the `comm' command comes in.
+
+ $ tr '[:upper:]' '[:lower:]' < whats.gnu | tr -cd '[:alnum:]_ \n' |
+ > tr -s ' ' '\n' | sort -u |
+ > comm -23 - /usr/dict/words
+
+ The `-2' and `-3' options eliminate lines that are only in the
+dictionary (the second file), and lines that are in both files. Lines
+only in the first file (standard input, our stream of words), are words
+that are not in the dictionary. These are likely candidates for
+spelling errors. This pipeline was the first cut at a production
+spelling checker on Unix.
+
+ There are some other tools that deserve brief mention.
+
+`grep'
+ search files for text that matches a regular expression
+
+`wc'
+ count lines, words, characters
+
+`tee'
+ a T-fitting for data pipes, copies data to files and to standard
+ output
+
+`sed'
+ the stream editor, an advanced tool
+
+`awk'
+ a data manipulation language, another advanced tool
+
+ The software tools philosophy also espoused the following bit of
+advice: "Let someone else do the hard part." This means, take
+something that gives you most of what you need, and then massage it the
+rest of the way until it's in the form that you want.
+
+ To summarize:
+
+ 1. Each program should do one thing well. No more, no less.
+
+ 2. Combining programs with appropriate plumbing leads to results where
+ the whole is greater than the sum of the parts. It also leads to
+ novel uses of programs that the authors might never have imagined.
+
+ 3. Programs should never print extraneous header or trailer data,
+ since these could get sent on down a pipeline. (A point we didn't
+ mention earlier.)
+
+ 4. Let someone else do the hard part.
+
+ 5. Know your toolbox! Use each program appropriately. If you don't
+ have an appropriate tool, build one.
+
+ As of this writing, all the programs we've discussed are available
+via anonymous `ftp' from:
+`ftp://gnudist.gnu.org/textutils/textutils-1.22.tar.gz'. (There may be
+more recent versions available now.)
+
+ None of what I have presented in this column is new. The Software
+Tools philosophy was first introduced in the book `Software Tools', by
+Brian Kernighan and P.J. Plauger (Addison-Wesley, ISBN 0-201-03669-X).
+This book showed how to write and use software tools. It was written in
+1976, using a preprocessor for FORTRAN named `ratfor' (RATional
+FORtran). At the time, C was not as ubiquitous as it is now; FORTRAN
+was. The last chapter presented a `ratfor' to FORTRAN processor,
+written in `ratfor'. `ratfor' looks an awful lot like C; if you know
+C, you won't have any problem following the code.
+
+ In 1981, the book was updated and made available as `Software Tools
+in Pascal' (Addison-Wesley, ISBN 0-201-10342-7). Both books are still
+in print and are well worth reading if you're a programmer. They
+certainly made a major change in how I view programming.
+
+ The programs in both books are available from Brian Kernighan's home
+page (http://cm.bell-labs.com/who/bwk). For a number of years, there
+was an active Software Tools Users Group, whose members had ported the
+original `ratfor' programs to essentially every computer system with a
+FORTRAN compiler. The popularity of the group waned in the middle 1980s
+as Unix began to spread beyond universities.
+
+ With the current proliferation of GNU code and other clones of Unix
+programs, these programs now receive little attention; modern C
+versions are much more efficient and do more than these programs do.
+Nevertheless, as exposition of good programming style, and evangelism
+for a still-valuable philosophy, these books are unparalleled, and I
+recommend them highly.
+
+ Acknowledgment: I would like to express my gratitude to Brian
+Kernighan of Bell Labs, the original Software Toolsmith, for reviewing
+this column.
+
+ ---------- Footnotes ----------
+
+ (1) Redhat Linux 6.1, for the November 2000 revision of this article.
+
+
+File: coreutils.info, Node: GNU Free Documentation License, Next: Index, Prev: Opening the software toolbox, Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+ Version 1.1, March 2000
+* Menu:
+
+* How to use this License for your documents::
+
+ Copyright (C) 2000 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ 0. PREAMBLE
+
+ The purpose of this License is to make a manual, textbook, or other
+ written document "free" in the sense of freedom: to assure everyone
+ the effective freedom to copy and redistribute it, with or without
+ modifying it, either commercially or noncommercially. Secondarily,
+ this License preserves for the author and publisher a way to get
+ credit for their work, while not being considered responsible for
+ modifications made by others.
+
+ This License is a kind of "copyleft", which means that derivative
+ works of the document must themselves be free in the same sense.
+ It complements the GNU General Public License, which is a copyleft
+ license designed for free software.
+
+ We have designed this License in order to use it for manuals for
+ free software, because free software needs free documentation: a
+ free program should come with manuals providing the same freedoms
+ that the software does. But this License is not limited to
+ software manuals; it can be used for any textual work, regardless
+ of subject matter or whether it is published as a printed book.
+ We recommend this License principally for works whose purpose is
+ instruction or reference.
+
+ 1. APPLICABILITY AND DEFINITIONS
+
+ This License applies to any manual or other work that contains a
+ notice placed by the copyright holder saying it can be distributed
+ under the terms of this License. The "Document", below, refers to
+ any such manual or work. Any member of the public is a licensee,
+ and is addressed as "you".
+
+ A "Modified Version" of the Document means any work containing the
+ Document or a portion of it, either copied verbatim, or with
+ modifications and/or translated into another language.
+
+ A "Secondary Section" is a named appendix or a front-matter
+ section of the Document that deals exclusively with the
+ relationship of the publishers or authors of the Document to the
+ Document's overall subject (or to related matters) and contains
+ nothing that could fall directly within that overall subject.
+ (For example, if the Document is in part a textbook of
+ mathematics, a Secondary Section may not explain any mathematics.)
+ The relationship could be a matter of historical connection with
+ the subject or with related matters, or of legal, commercial,
+ philosophical, ethical or political position regarding them.
+
+ The "Invariant Sections" are certain Secondary Sections whose
+ titles are designated, as being those of Invariant Sections, in
+ the notice that says that the Document is released under this
+ License.
+
+ The "Cover Texts" are certain short passages of text that are
+ listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+ that says that the Document is released under this License.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, whose contents can be viewed and edited directly
+ and straightforwardly with generic text editors or (for images
+ composed of pixels) generic paint programs or (for drawings) some
+ widely available drawing editor, and that is suitable for input to
+ text formatters or for automatic translation to a variety of
+ formats suitable for input to text formatters. A copy made in an
+ otherwise Transparent file format whose markup has been designed
+ to thwart or discourage subsequent modification by readers is not
+ Transparent. A copy that is not "Transparent" is called "Opaque".
+
+ Examples of suitable formats for Transparent copies include plain
+ ASCII without markup, Texinfo input format, LaTeX input format,
+ SGML or XML using a publicly available DTD, and
+ standard-conforming simple HTML designed for human modification.
+ Opaque formats include PostScript, PDF, proprietary formats that
+ can be read and edited only by proprietary word processors, SGML
+ or XML for which the DTD and/or processing tools are not generally
+ available, and the machine-generated HTML produced by some word
+ processors for output purposes only.
+
+ The "Title Page" means, for a printed book, the title page itself,
+ plus such following pages as are needed to hold, legibly, the
+ material this License requires to appear in the title page. For
+ works in formats which do not have any title page as such, "Title
+ Page" means the text near the most prominent appearance of the
+ work's title, preceding the beginning of the body of the text.
+
+ 2. VERBATIM COPYING
+
+ You may copy and distribute the Document in any medium, either
+ commercially or noncommercially, provided that this License, the
+ copyright notices, and the license notice saying this License
+ applies to the Document are reproduced in all copies, and that you
+ add no other conditions whatsoever to those of this License. You
+ may not use technical measures to obstruct or control the reading
+ or further copying of the copies you make or distribute. However,
+ you may accept compensation in exchange for copies. If you
+ distribute a large enough number of copies you must also follow
+ the conditions in section 3.
+
+ You may also lend copies, under the same conditions stated above,
+ and you may publicly display copies.
+
+ 3. COPYING IN QUANTITY
+
+ If you publish printed copies of the Document numbering more than
+ 100, and the Document's license notice requires Cover Texts, you
+ must enclose the copies in covers that carry, clearly and legibly,
+ all these Cover Texts: Front-Cover Texts on the front cover, and
+ Back-Cover Texts on the back cover. Both covers must also clearly
+ and legibly identify you as the publisher of these copies. The
+ front cover must present the full title with all words of the
+ title equally prominent and visible. You may add other material
+ on the covers in addition. Copying with changes limited to the
+ covers, as long as they preserve the title of the Document and
+ satisfy these conditions, can be treated as verbatim copying in
+ other respects.
+
+ If the required texts for either cover are too voluminous to fit
+ legibly, you should put the first ones listed (as many as fit
+ reasonably) on the actual cover, and continue the rest onto
+ adjacent pages.
+
+ If you publish or distribute Opaque copies of the Document
+ numbering more than 100, you must either include a
+ machine-readable Transparent copy along with each Opaque copy, or
+ state in or with each Opaque copy a publicly-accessible
+ computer-network location containing a complete Transparent copy
+ of the Document, free of added material, which the general
+ network-using public has access to download anonymously at no
+ charge using public-standard network protocols. If you use the
+ latter option, you must take reasonably prudent steps, when you
+ begin distribution of Opaque copies in quantity, to ensure that
+ this Transparent copy will remain thus accessible at the stated
+ location until at least one year after the last time you
+ distribute an Opaque copy (directly or through your agents or
+ retailers) of that edition to the public.
+
+ It is requested, but not required, that you contact the authors of
+ the Document well before redistributing any large number of
+ copies, to give them a chance to provide you with an updated
+ version of the Document.
+
+ 4. MODIFICATIONS
+
+ You may copy and distribute a Modified Version of the Document
+ under the conditions of sections 2 and 3 above, provided that you
+ release the Modified Version under precisely this License, with
+ the Modified Version filling the role of the Document, thus
+ licensing distribution and modification of the Modified Version to
+ whoever possesses a copy of it. In addition, you must do these
+ things in the Modified Version:
+
+ A. Use in the Title Page (and on the covers, if any) a title
+ distinct from that of the Document, and from those of previous
+ versions (which should, if there were any, be listed in the
+ History section of the Document). You may use the same title
+ as a previous version if the original publisher of that version
+ gives permission.
+ B. List on the Title Page, as authors, one or more persons or
+ entities responsible for authorship of the modifications in the
+ Modified Version, together with at least five of the principal
+ authors of the Document (all of its principal authors, if it
+ has less than five).
+ C. State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+ D. Preserve all the copyright notices of the Document.
+ E. Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+ F. Include, immediately after the copyright notices, a license
+ notice giving the public permission to use the Modified Version
+ under the terms of this License, in the form shown in the
+ Addendum below.
+ G. Preserve in that license notice the full lists of Invariant
+ Sections and required Cover Texts given in the Document's
+ license notice.
+ H. Include an unaltered copy of this License.
+ I. Preserve the section entitled "History", and its title, and add
+ to it an item stating at least the title, year, new authors, and
+ publisher of the Modified Version as given on the Title Page.
+ If there is no section entitled "History" in the Document,
+ create one stating the title, year, authors, and publisher of
+ the Document as given on its Title Page, then add an item
+ describing the Modified Version as stated in the previous
+ sentence.
+ J. Preserve the network location, if any, given in the Document for
+ public access to a Transparent copy of the Document, and
+ likewise the network locations given in the Document for
+ previous versions it was based on. These may be placed in the
+ "History" section. You may omit a network location for a work
+ that was published at least four years before the Document
+ itself, or if the original publisher of the version it refers
+ to gives permission.
+ K. In any section entitled "Acknowledgements" or "Dedications",
+ preserve the section's title, and preserve in the section all the
+ substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+ L. Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section titles.
+ M. Delete any section entitled "Endorsements". Such a section
+ may not be included in the Modified Version.
+ N. Do not retitle any existing section as "Endorsements" or to
+ conflict in title with any Invariant Section.
+ If the Modified Version includes new front-matter sections or
+ appendices that qualify as Secondary Sections and contain no
+ material copied from the Document, you may at your option
+ designate some or all of these sections as invariant. To do this,
+ add their titles to the list of Invariant Sections in the Modified
+ Version's license notice. These titles must be distinct from any
+ other section titles.
+
+ You may add a section entitled "Endorsements", provided it contains
+ nothing but endorsements of your Modified Version by various
+ parties-for example, statements of peer review or that the text has
+ been approved by an organization as the authoritative definition
+ of a standard.
+
+ You may add a passage of up to five words as a Front-Cover Text,
+ and a passage of up to 25 words as a Back-Cover Text, to the end
+ of the list of Cover Texts in the Modified Version. Only one
+ passage of Front-Cover Text and one of Back-Cover Text may be
+ added by (or through arrangements made by) any one entity. If the
+ Document already includes a cover text for the same cover,
+ previously added by you or by arrangement made by the same entity
+ you are acting on behalf of, you may not add another; but you may
+ replace the old one, on explicit permission from the previous
+ publisher that added the old one.
+
+ The author(s) and publisher(s) of the Document do not by this
+ License give permission to use their names for publicity for or to
+ assert or imply endorsement of any Modified Version.
+
+ 5. COMBINING DOCUMENTS
+
+ You may combine the Document with other documents released under
+ this License, under the terms defined in section 4 above for
+ modified versions, provided that you include in the combination
+ all of the Invariant Sections of all of the original documents,
+ unmodified, and list them all as Invariant Sections of your
+ combined work in its license notice.
+
+ The combined work need only contain one copy of this License, and
+ multiple identical Invariant Sections may be replaced with a single
+ copy. If there are multiple Invariant Sections with the same name
+ but different contents, make the title of each such section unique
+ by adding at the end of it, in parentheses, the name of the
+ original author or publisher of that section if known, or else a
+ unique number. Make the same adjustment to the section titles in
+ the list of Invariant Sections in the license notice of the
+ combined work.
+
+ In the combination, you must combine any sections entitled
+ "History" in the various original documents, forming one section
+ entitled "History"; likewise combine any sections entitled
+ "Acknowledgements", and any sections entitled "Dedications". You
+ must delete all sections entitled "Endorsements."
+
+ 6. COLLECTIONS OF DOCUMENTS
+
+ You may make a collection consisting of the Document and other
+ documents released under this License, and replace the individual
+ copies of this License in the various documents with a single copy
+ that is included in the collection, provided that you follow the
+ rules of this License for verbatim copying of each of the
+ documents in all other respects.
+
+ You may extract a single document from such a collection, and
+ distribute it individually under this License, provided you insert
+ a copy of this License into the extracted document, and follow
+ this License in all other respects regarding verbatim copying of
+ that document.
+
+ 7. AGGREGATION WITH INDEPENDENT WORKS
+
+ A compilation of the Document or its derivatives with other
+ separate and independent documents or works, in or on a volume of
+ a storage or distribution medium, does not as a whole count as a
+ Modified Version of the Document, provided no compilation
+ copyright is claimed for the compilation. Such a compilation is
+ called an "aggregate", and this License does not apply to the
+ other self-contained works thus compiled with the Document, on
+ account of their being thus compiled, if they are not themselves
+ derivative works of the Document.
+
+ If the Cover Text requirement of section 3 is applicable to these
+ copies of the Document, then if the Document is less than one
+ quarter of the entire aggregate, the Document's Cover Texts may be
+ placed on covers that surround only the Document within the
+ aggregate. Otherwise they must appear on covers around the whole
+ aggregate.
+
+ 8. TRANSLATION
+
+ Translation is considered a kind of modification, so you may
+ distribute translations of the Document under the terms of section
+ 4. Replacing Invariant Sections with translations requires special
+ permission from their copyright holders, but you may include
+ translations of some or all Invariant Sections in addition to the
+ original versions of these Invariant Sections. You may include a
+ translation of this License provided that you also include the
+ original English version of this License. In case of a
+ disagreement between the translation and the original English
+ version of this License, the original English version will prevail.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided for under this License. Any other
+ attempt to copy, modify, sublicense or distribute the Document is
+ void, and will automatically terminate your rights under this
+ License. However, parties who have received copies, or rights,
+ from you under this License will not have their licenses
+ terminated so long as such parties remain in full compliance.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+ The Free Software Foundation may publish new, revised versions of
+ the GNU Free Documentation License from time to time. Such new
+ versions will be similar in spirit to the present version, but may
+ differ in detail to address new problems or concerns. See
+ http://www.gnu.org/copyleft/.
+
+ Each version of the License is given a distinguishing version
+ number. If the Document specifies that a particular numbered
+ version of this License "or any later version" applies to it, you
+ have the option of following the terms and conditions either of
+ that specified version or of any later version that has been
+ published (not as a draft) by the Free Software Foundation. If
+ the Document does not specify a version number of this License,
+ you may choose any version ever published (not as a draft) by the
+ Free Software Foundation.
+
+
+
+File: coreutils.info, Node: How to use this License for your documents, Up: GNU Free Documentation License
+
+ADDENDUM: How to use this License for your documents
+====================================================
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+
+ Copyright (C) YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.1
+ or any later version published by the Free Software Foundation;
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+If you have no Invariant Sections, write "with no Invariant
+Sections" instead of saying which ones are invariant. If you have no
+Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover
+Texts being LIST"; likewise for Back-Cover Texts.
+
+ If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+
+
+File: coreutils.info, Node: Index, Prev: GNU Free Documentation License, Up: Top
+
+Index
+*****
+
+
+* Menu:
+
+* !: Connectives for test.
+ (line 9)
+* !=: String tests. (line 25)
+* %: Numeric expressions. (line 15)
+* %b: printf invocation. (line 32)
+* &: Relations for expr. (line 17)
+* *: Numeric expressions. (line 15)
+* + <1>: Numeric expressions. (line 11)
+* +: String expressions. (line 53)
+* +PAGE_RANGE: pr invocation. (line 60)
+* - <1>: su invocation. (line 53)
+* - <2>: env invocation. (line 45)
+* -: Numeric expressions. (line 11)
+* - and Unix rm: rm invocation. (line 77)
+* -, removing files beginning with: rm invocation. (line 65)
+* --: Common options. (line 36)
+* --across: pr invocation. (line 84)
+* --address-radix: od invocation. (line 36)
+* --adjustment: nice invocation. (line 34)
+* --all <1>: uname invocation. (line 30)
+* --all <2>: who invocation. (line 36)
+* --all <3>: stty invocation. (line 26)
+* --all <4>: du invocation. (line 21)
+* --all <5>: df invocation. (line 32)
+* --all <6>: Which files are listed.
+ (line 13)
+* --all: unexpand invocation. (line 38)
+* --all-repeated: uniq invocation. (line 67)
+* --almost-all: Which files are listed.
+ (line 17)
+* --apparent-size: du invocation. (line 24)
+* --append: tee invocation. (line 25)
+* --archive: cp invocation. (line 54)
+* --author: What information is listed.
+ (line 10)
+* --backup <1>: ln invocation. (line 55)
+* --backup <2>: mv invocation. (line 50)
+* --backup <3>: install invocation. (line 36)
+* --backup <4>: cp invocation. (line 61)
+* --backup: Backup options. (line 13)
+* --before: tac invocation. (line 21)
+* --binary <1>: md5sum invocation. (line 24)
+* --binary: cat invocation. (line 20)
+* --block-size <1>: du invocation. (line 45)
+* --block-size <2>: df invocation. (line 40)
+* --block-size: Block size. (line 138)
+* --block-size=SIZE: Block size. (line 12)
+* --body-numbering: nl invocation. (line 47)
+* --boot: who invocation. (line 40)
+* --bourne-shell: dircolors invocation.
+ (line 27)
+* --buffer-size: sort invocation. (line 191)
+* --bytes <1>: du invocation. (line 41)
+* --bytes <2>: cut invocation. (line 26)
+* --bytes <3>: wc invocation. (line 41)
+* --bytes <4>: split invocation. (line 38)
+* --bytes <5>: tail invocation. (line 36)
+* --bytes <6>: head invocation. (line 24)
+* --bytes: fold invocation. (line 23)
+* --c-shell: dircolors invocation.
+ (line 33)
+* --canonicalize: readlink invocation. (line 29)
+* --canonicalize-existing: readlink invocation. (line 35)
+* --canonicalize-missing: readlink invocation. (line 41)
+* --changes <1>: chmod invocation. (line 28)
+* --changes <2>: chgrp invocation. (line 17)
+* --changes: chown invocation. (line 66)
+* --characters: cut invocation. (line 34)
+* --chars: wc invocation. (line 45)
+* --check: sort invocation. (line 17)
+* --check-chars: uniq invocation. (line 101)
+* --classify: General output formatting.
+ (line 36)
+* --color: General output formatting.
+ (line 21)
+* --columns: pr invocation. (line 70)
+* --command: su invocation. (line 39)
+* --complement: cut invocation. (line 71)
+* --count <1>: who invocation. (line 60)
+* --count: uniq invocation. (line 53)
+* --count-links: du invocation. (line 91)
+* --crown-margin: fmt invocation. (line 34)
+* --csh: dircolors invocation.
+ (line 33)
+* --date <1>: Options for date. (line 11)
+* --date: touch invocation. (line 62)
+* --dead: who invocation. (line 44)
+* --delimiter: cut invocation. (line 51)
+* --delimiters: paste invocation. (line 43)
+* --dereference <1>: stat invocation. (line 22)
+* --dereference <2>: du invocation. (line 96)
+* --dereference <3>: chgrp invocation. (line 27)
+* --dereference <4>: chown invocation. (line 99)
+* --dereference <5>: cp invocation. (line 121)
+* --dereference: Which files are listed.
+ (line 77)
+* --dereference-args: du invocation. (line 56)
+* --dereference-command-line: Which files are listed.
+ (line 36)
+* --dereference-command-line-symlink-to-dir: Which files are listed.
+ (line 41)
+* --dictionary-order: sort invocation. (line 75)
+* --digits: csplit invocation. (line 80)
+* --directory <1>: ln invocation. (line 61)
+* --directory <2>: rm invocation. (line 25)
+* --directory <3>: install invocation. (line 44)
+* --directory: Which files are listed.
+ (line 28)
+* --dired: What information is listed.
+ (line 16)
+* --double-space: pr invocation. (line 96)
+* --elide-empty-files: csplit invocation. (line 89)
+* --escape: Formatting the file names.
+ (line 11)
+* --exact: shred invocation. (line 119)
+* --exclude-from=FILE: du invocation. (line 144)
+* --exclude-type: df invocation. (line 134)
+* --exclude=PATTERN: du invocation. (line 138)
+* --expand-tabs: pr invocation. (line 120)
+* --fast: su invocation. (line 44)
+* --field-separator: sort invocation. (line 207)
+* --fields: cut invocation. (line 44)
+* --file <1>: Options for date. (line 22)
+* --file: stty invocation. (line 31)
+* --file-system: stat invocation. (line 17)
+* --file-type: General output formatting.
+ (line 73)
+* --files0-from=FILE: du invocation. (line 62)
+* --first-line-number: pr invocation. (line 198)
+* --follow: tail invocation. (line 41)
+* --footer-numbering: nl invocation. (line 75)
+* --force <1>: ln invocation. (line 67)
+* --force <2>: shred invocation. (line 91)
+* --force <3>: rm invocation. (line 37)
+* --force <4>: mv invocation. (line 55)
+* --force: cp invocation. (line 96)
+* --form-feed: pr invocation. (line 128)
+* --format <1>: General output formatting.
+ (line 10)
+* --format <2>: What information is listed.
+ (line 130)
+* --format: od invocation. (line 76)
+* --format=FORMAT <1>: seq invocation. (line 24)
+* --format=FORMAT: stat invocation. (line 33)
+* --from: chown invocation. (line 76)
+* --full-time: What information is listed.
+ (line 100)
+* --general-numeric-sort: sort invocation. (line 87)
+* --group <1>: id invocation. (line 23)
+* --group: install invocation. (line 53)
+* --groups: id invocation. (line 27)
+* --hardware-platform: uname invocation. (line 34)
+* --header: pr invocation. (line 134)
+* --header-numbering: nl invocation. (line 79)
+* --heading: who invocation. (line 48)
+* --help: Common options. (line 29)
+* --hide-control-chars: Formatting the file names.
+ (line 23)
+* --hide=PATTERN: Which files are listed.
+ (line 50)
+* --human-readable <1>: du invocation. (line 75)
+* --human-readable <2>: df invocation. (line 45)
+* --human-readable <3>: What information is listed.
+ (line 116)
+* --human-readable: Block size. (line 138)
+* --idle: who invocation. (line 52)
+* --ignore-backups: Which files are listed.
+ (line 23)
+* --ignore-case <1>: join invocation. (line 57)
+* --ignore-case <2>: uniq invocation. (line 57)
+* --ignore-case: sort invocation. (line 81)
+* --ignore-environment: env invocation. (line 45)
+* --ignore-fail-on-non-empty: rmdir invocation. (line 17)
+* --ignore-interrupts: tee invocation. (line 30)
+* --ignore-leading-blanks: sort invocation. (line 70)
+* --ignore-nonprinting: sort invocation. (line 114)
+* --ignore=PATTERN: Which files are listed.
+ (line 63)
+* --indent: pr invocation. (line 204)
+* --indicator-style: General output formatting.
+ (line 36)
+* --initial: expand invocation. (line 35)
+* --inode: What information is listed.
+ (line 122)
+* --inodes: df invocation. (line 54)
+* --interactive <1>: ln invocation. (line 71)
+* --interactive <2>: rm invocation. (line 42)
+* --interactive <3>: mv invocation. (line 59)
+* --interactive: cp invocation. (line 113)
+* --iso-8601[=TIMESPEC]: Options for date. (line 30)
+* --iterations=NUMBER: shred invocation. (line 96)
+* --join-blank-lines: nl invocation. (line 87)
+* --join-lines: pr invocation. (line 147)
+* --keep-files: csplit invocation. (line 85)
+* --kernel-name: uname invocation. (line 61)
+* --kernel-release: uname invocation. (line 57)
+* --kernel-version: uname invocation. (line 72)
+* --key: sort invocation. (line 163)
+* --length: pr invocation. (line 156)
+* --line-bytes: split invocation. (line 44)
+* --lines <1>: wc invocation. (line 53)
+* --lines <2>: split invocation. (line 30)
+* --lines <3>: tail invocation. (line 129)
+* --lines: head invocation. (line 30)
+* --link: cp invocation. (line 117)
+* --literal: Formatting the file names.
+ (line 17)
+* --local: df invocation. (line 65)
+* --login <1>: su invocation. (line 53)
+* --login: who invocation. (line 75)
+* --lookup: who invocation. (line 80)
+* --machine: uname invocation. (line 39)
+* --max-depth=DEPTH: du invocation. (line 106)
+* --max-line-length: wc invocation. (line 57)
+* --max-unchanged-stats: tail invocation. (line 117)
+* --merge <1>: sort invocation. (line 23)
+* --merge: pr invocation. (line 164)
+* --mesg: who invocation. (line 93)
+* --message: who invocation. (line 93)
+* --mode <1>: mknod invocation. (line 43)
+* --mode <2>: mkfifo invocation. (line 21)
+* --mode <3>: mkdir invocation. (line 24)
+* --mode: install invocation. (line 59)
+* --month-sort: sort invocation. (line 120)
+* --name: id invocation. (line 31)
+* --no-create: touch invocation. (line 58)
+* --no-dereference <1>: du invocation. (line 102)
+* --no-dereference <2>: chgrp invocation. (line 32)
+* --no-dereference <3>: chown invocation. (line 104)
+* --no-dereference <4>: ln invocation. (line 75)
+* --no-dereference: cp invocation. (line 125)
+* --no-file-warnings: pr invocation. (line 211)
+* --no-group: What information is listed.
+ (line 110)
+* --no-newline: readlink invocation. (line 46)
+* --no-preserve-root <1>: chmod invocation. (line 43)
+* --no-preserve-root <2>: chgrp invocation. (line 45)
+* --no-preserve-root <3>: chown invocation. (line 117)
+* --no-preserve-root: rm invocation. (line 52)
+* --no-renumber: nl invocation. (line 108)
+* --no-sync: df invocation. (line 69)
+* --no-target-directory <1>: ln invocation. (line 109)
+* --no-target-directory <2>: mv invocation. (line 99)
+* --no-target-directory <3>: install invocation. (line 97)
+* --no-target-directory <4>: cp invocation. (line 260)
+* --no-target-directory: Target directory. (line 15)
+* --nodename: uname invocation. (line 44)
+* --null: du invocation. (line 112)
+* --number: cat invocation. (line 52)
+* --number-format: nl invocation. (line 95)
+* --number-lines: pr invocation. (line 177)
+* --number-nonblank: cat invocation. (line 37)
+* --number-separator: nl invocation. (line 112)
+* --number-width: nl invocation. (line 122)
+* --numeric-sort: sort invocation. (line 128)
+* --numeric-suffixes: split invocation. (line 52)
+* --numeric-uid-gid: What information is listed.
+ (line 179)
+* --omit-header: pr invocation. (line 240)
+* --omit-pagination: pr invocation. (line 251)
+* --one-file-system <1>: du invocation. (line 134)
+* --one-file-system: cp invocation. (line 285)
+* --only-delimited: cut invocation. (line 59)
+* --operating-system: uname invocation. (line 53)
+* --output: sort invocation. (line 171)
+* --output-delimiter: cut invocation. (line 64)
+* --output-duplicates: od invocation. (line 145)
+* --output-tabs: pr invocation. (line 140)
+* --owner: install invocation. (line 68)
+* --page-increment: nl invocation. (line 83)
+* --page_width: pr invocation. (line 269)
+* --pages=PAGE_RANGE: pr invocation. (line 60)
+* --parents <1>: rmdir invocation. (line 22)
+* --parents <2>: mkdir invocation. (line 31)
+* --parents: cp invocation. (line 167)
+* --pid: tail invocation. (line 97)
+* --portability <1>: pathchk invocation. (line 30)
+* --portability: df invocation. (line 76)
+* --prefix: csplit invocation. (line 62)
+* --preserve: cp invocation. (line 130)
+* --preserve-environment: su invocation. (line 64)
+* --preserve-root <1>: chmod invocation. (line 38)
+* --preserve-root <2>: chgrp invocation. (line 40)
+* --preserve-root <3>: chown invocation. (line 112)
+* --preserve-root: rm invocation. (line 47)
+* --preserve-timestamps: install invocation. (line 74)
+* --print-database: dircolors invocation.
+ (line 38)
+* --print-type: df invocation. (line 109)
+* --processor: uname invocation. (line 48)
+* --quiet <1>: tty invocation. (line 18)
+* --quiet <2>: chmod invocation. (line 34)
+* --quiet <3>: chgrp invocation. (line 23)
+* --quiet <4>: chown invocation. (line 72)
+* --quiet <5>: readlink invocation. (line 52)
+* --quiet <6>: csplit invocation. (line 100)
+* --quiet <7>: tail invocation. (line 134)
+* --quiet: head invocation. (line 36)
+* --quote-name: Formatting the file names.
+ (line 30)
+* --quoting-style: Formatting the file names.
+ (line 11)
+* --read-bytes: od invocation. (line 63)
+* --real: id invocation. (line 36)
+* --recursive <1>: chmod invocation. (line 58)
+* --recursive <2>: chgrp invocation. (line 63)
+* --recursive <3>: chown invocation. (line 136)
+* --recursive <4>: rm invocation. (line 58)
+* --recursive <5>: cp invocation. (line 189)
+* --recursive: Which files are listed.
+ (line 84)
+* --reference <1>: Options for date. (line 74)
+* --reference <2>: touch invocation. (line 81)
+* --reference <3>: chmod invocation. (line 51)
+* --reference <4>: chgrp invocation. (line 49)
+* --reference: chown invocation. (line 121)
+* --regex: tac invocation. (line 26)
+* --remove: shred invocation. (line 109)
+* --remove-destination: cp invocation. (line 201)
+* --repeated: uniq invocation. (line 61)
+* --reply <1>: mv invocation. (line 64)
+* --reply: cp invocation. (line 178)
+* --retry: tail invocation. (line 83)
+* --reverse <1>: Sorting the output. (line 28)
+* --reverse: sort invocation. (line 155)
+* --rfc-2822: Options for date. (line 61)
+* --rfc-822: Options for date. (line 61)
+* --save: stty invocation. (line 41)
+* --section-delimiter: nl invocation. (line 68)
+* --sep-string: pr invocation. (line 225)
+* --separate-dirs: du invocation. (line 129)
+* --separator <1>: pr invocation. (line 216)
+* --separator: tac invocation. (line 33)
+* --serial: paste invocation. (line 34)
+* --set: Options for date. (line 79)
+* --sh: dircolors invocation.
+ (line 27)
+* --shell: su invocation. (line 75)
+* --show-all: cat invocation. (line 16)
+* --show-control-chars <1>: Formatting the file names.
+ (line 77)
+* --show-control-chars: pr invocation. (line 90)
+* --show-ends: cat invocation. (line 46)
+* --show-nonprinting <1>: pr invocation. (line 256)
+* --show-nonprinting: cat invocation. (line 74)
+* --show-tabs: cat invocation. (line 67)
+* --si <1>: du invocation. (line 118)
+* --si <2>: df invocation. (line 89)
+* --si <3>: What information is listed.
+ (line 205)
+* --si: Block size. (line 138)
+* --silent <1>: tty invocation. (line 18)
+* --silent <2>: chmod invocation. (line 34)
+* --silent <3>: chgrp invocation. (line 23)
+* --silent <4>: chown invocation. (line 72)
+* --silent <5>: readlink invocation. (line 52)
+* --silent <6>: csplit invocation. (line 100)
+* --silent <7>: tail invocation. (line 134)
+* --silent: head invocation. (line 36)
+* --size: What information is listed.
+ (line 189)
+* --size=BYTES: shred invocation. (line 103)
+* --skip-bytes: od invocation. (line 55)
+* --skip-chars: uniq invocation. (line 42)
+* --skip-fields: uniq invocation. (line 31)
+* --sleep-interval: tail invocation. (line 89)
+* --sort: Sorting the output. (line 33)
+* --spaces: fold invocation. (line 29)
+* --sparse=WHEN: cp invocation. (line 205)
+* --split-only: fmt invocation. (line 47)
+* --squeeze-blank: cat invocation. (line 58)
+* --stable: sort invocation. (line 185)
+* --starting-line-number: nl invocation. (line 117)
+* --status: md5sum invocation. (line 53)
+* --strings: od invocation. (line 68)
+* --strip: install invocation. (line 84)
+* --strip-trailing-slashes <1>: mv invocation. (line 85)
+* --strip-trailing-slashes: cp invocation. (line 238)
+* --suffix <1>: ln invocation. (line 100)
+* --suffix <2>: mv invocation. (line 90)
+* --suffix <3>: install invocation. (line 88)
+* --suffix <4>: cp invocation. (line 251)
+* --suffix <5>: csplit invocation. (line 66)
+* --suffix: Backup options. (line 50)
+* --suffix-length: split invocation. (line 26)
+* --summarize: du invocation. (line 125)
+* --symbolic: ln invocation. (line 94)
+* --symbolic-link: cp invocation. (line 243)
+* --sync: df invocation. (line 96)
+* --sysv: sum invocation. (line 31)
+* --tabs <1>: unexpand invocation. (line 24)
+* --tabs: expand invocation. (line 22)
+* --tabsize: General output formatting.
+ (line 83)
+* --tagged-paragraph: fmt invocation. (line 40)
+* --target-directory <1>: ln invocation. (line 105)
+* --target-directory <2>: mv invocation. (line 95)
+* --target-directory <3>: install invocation. (line 93)
+* --target-directory <4>: cp invocation. (line 256)
+* --target-directory: Target directory. (line 31)
+* --temporary-directory: sort invocation. (line 224)
+* --terse: stat invocation. (line 28)
+* --text: md5sum invocation. (line 63)
+* --time <1>: touch invocation. (line 54)
+* --time: Sorting the output. (line 14)
+* --time-style: Formatting file timestamps.
+ (line 26)
+* --total: du invocation. (line 50)
+* --traditional: od invocation. (line 199)
+* --type: df invocation. (line 103)
+* --uniform-spacing: fmt invocation. (line 53)
+* --unique <1>: uniq invocation. (line 96)
+* --unique: sort invocation. (line 233)
+* --universal: Options for date. (line 84)
+* --unset: env invocation. (line 39)
+* --update <1>: mv invocation. (line 72)
+* --update: cp invocation. (line 265)
+* --user: id invocation. (line 41)
+* --utc: Options for date. (line 84)
+* --verbose <1>: chmod invocation. (line 48)
+* --verbose <2>: chgrp invocation. (line 55)
+* --verbose <3>: chown invocation. (line 128)
+* --verbose <4>: rmdir invocation. (line 32)
+* --verbose <5>: readlink invocation. (line 56)
+* --verbose <6>: mkdir invocation. (line 38)
+* --verbose <7>: ln invocation. (line 114)
+* --verbose <8>: shred invocation. (line 115)
+* --verbose <9>: rm invocation. (line 62)
+* --verbose <10>: mv invocation. (line 82)
+* --verbose <11>: install invocation. (line 102)
+* --verbose <12>: cp invocation. (line 275)
+* --verbose <13>: split invocation. (line 55)
+* --verbose <14>: tail invocation. (line 138)
+* --verbose: head invocation. (line 40)
+* --version: Common options. (line 33)
+* --version-control <1>: ln invocation. (line 118)
+* --version-control <2>: mv invocation. (line 104)
+* --version-control <3>: install invocation. (line 106)
+* --version-control <4>: cp invocation. (line 279)
+* --version-control: Backup options. (line 56)
+* --warn: md5sum invocation. (line 68)
+* --width <1>: General output formatting.
+ (line 89)
+* --width <2>: fold invocation. (line 35)
+* --width <3>: pr invocation. (line 260)
+* --width <4>: fmt invocation. (line 59)
+* --width: od invocation. (line 152)
+* --words: wc invocation. (line 49)
+* --writable: who invocation. (line 93)
+* --zero: shred invocation. (line 129)
+* --zero-terminated: sort invocation. (line 247)
+* -0: du invocation. (line 111)
+* -1 <1>: General output formatting.
+ (line 10)
+* -1 <2>: join invocation. (line 62)
+* -1: comm invocation. (line 23)
+* -2 <1>: join invocation. (line 65)
+* -2: comm invocation. (line 23)
+* -3: comm invocation. (line 23)
+* -a <1>: uname invocation. (line 30)
+* -a <2>: who invocation. (line 36)
+* -a <3>: stty invocation. (line 26)
+* -a <4>: tee invocation. (line 25)
+* -a <5>: Connectives for test.
+ (line 12)
+* -a <6>: du invocation. (line 21)
+* -a <7>: df invocation. (line 32)
+* -a <8>: touch invocation. (line 54)
+* -a: cp invocation. (line 54)
+* -A: Which files are listed.
+ (line 17)
+* -a <1>: Which files are listed.
+ (line 13)
+* -a <2>: unexpand invocation. (line 38)
+* -a <3>: join invocation. (line 48)
+* -a <4>: split invocation. (line 26)
+* -a <5>: pr invocation. (line 84)
+* -a: od invocation. (line 168)
+* -A <1>: od invocation. (line 36)
+* -A: cat invocation. (line 16)
+* -b <1>: who invocation. (line 40)
+* -b: File type tests. (line 10)
+* -B: du invocation. (line 45)
+* -b: du invocation. (line 41)
+* -B: df invocation. (line 40)
+* -b <1>: ln invocation. (line 55)
+* -b <2>: mv invocation. (line 50)
+* -b <3>: install invocation. (line 36)
+* -b <4>: cp invocation. (line 61)
+* -b <5>: dircolors invocation.
+ (line 27)
+* -b: Formatting the file names.
+ (line 11)
+* -B: Which files are listed.
+ (line 23)
+* -b <1>: cut invocation. (line 26)
+* -b <2>: sort invocation. (line 70)
+* -b <3>: md5sum invocation. (line 24)
+* -b <4>: csplit invocation. (line 66)
+* -b <5>: split invocation. (line 38)
+* -b <6>: fold invocation. (line 23)
+* -b <7>: od invocation. (line 171)
+* -b <8>: nl invocation. (line 47)
+* -b <9>: tac invocation. (line 21)
+* -b: cat invocation. (line 37)
+* -B: cat invocation. (line 20)
+* -b: Backup options. (line 13)
+* -c <1>: su invocation. (line 39)
+* -c <2>: File type tests. (line 13)
+* -c <3>: stat invocation. (line 33)
+* -c <4>: du invocation. (line 50)
+* -c <5>: touch invocation. (line 58)
+* -c <6>: chmod invocation. (line 28)
+* -c <7>: chgrp invocation. (line 17)
+* -c <8>: chown invocation. (line 66)
+* -c <9>: install invocation. (line 40)
+* -c: dircolors invocation.
+ (line 33)
+* -C: General output formatting.
+ (line 15)
+* -c <1>: Sorting the output. (line 14)
+* -c <2>: cut invocation. (line 34)
+* -c <3>: uniq invocation. (line 53)
+* -c <4>: sort invocation. (line 17)
+* -c: wc invocation. (line 41)
+* -C: split invocation. (line 44)
+* -c <1>: tail invocation. (line 36)
+* -c <2>: head invocation. (line 24)
+* -c <3>: pr invocation. (line 90)
+* -c <4>: fmt invocation. (line 34)
+* -c: od invocation. (line 174)
+* -COLUMN: pr invocation. (line 70)
+* -d <1>: Options for date. (line 11)
+* -d <2>: who invocation. (line 44)
+* -d: File type tests. (line 16)
+* -D: du invocation. (line 56)
+* -d <1>: touch invocation. (line 62)
+* -d <2>: ln invocation. (line 61)
+* -d <3>: rm invocation. (line 25)
+* -d <4>: install invocation. (line 44)
+* -d: cp invocation. (line 89)
+* -D: What information is listed.
+ (line 16)
+* -d <1>: Which files are listed.
+ (line 28)
+* -d <2>: paste invocation. (line 43)
+* -d: cut invocation. (line 51)
+* -D: uniq invocation. (line 67)
+* -d <1>: uniq invocation. (line 61)
+* -d <2>: sort invocation. (line 75)
+* -d <3>: split invocation. (line 52)
+* -d <4>: pr invocation. (line 96)
+* -d <5>: od invocation. (line 178)
+* -d: nl invocation. (line 68)
+* -e: File characteristic tests.
+ (line 9)
+* -E: echo invocation. (line 63)
+* -e <1>: echo invocation. (line 20)
+* -e <2>: readlink invocation. (line 35)
+* -e <3>: join invocation. (line 52)
+* -e: pr invocation. (line 120)
+* -E: cat invocation. (line 46)
+* -e: cat invocation. (line 42)
+* -ef: File characteristic tests.
+ (line 23)
+* -eq: Numeric tests. (line 16)
+* -f <1>: su invocation. (line 44)
+* -f: Options for date. (line 22)
+* -F: stty invocation. (line 31)
+* -f <1>: File type tests. (line 19)
+* -f <2>: stat invocation. (line 17)
+* -f <3>: touch invocation. (line 72)
+* -f <4>: chmod invocation. (line 34)
+* -f <5>: chgrp invocation. (line 23)
+* -f <6>: chown invocation. (line 72)
+* -f <7>: readlink invocation. (line 29)
+* -f: ln invocation. (line 67)
+* -F: ln invocation. (line 61)
+* -f <1>: shred invocation. (line 91)
+* -f <2>: rm invocation. (line 37)
+* -f <3>: mv invocation. (line 55)
+* -f: cp invocation. (line 96)
+* -F: General output formatting.
+ (line 36)
+* -f <1>: Sorting the output. (line 21)
+* -f <2>: cut invocation. (line 44)
+* -f <3>: uniq invocation. (line 31)
+* -f <4>: sort invocation. (line 81)
+* -f: csplit invocation. (line 62)
+* -F: tail invocation. (line 78)
+* -f <1>: tail invocation. (line 41)
+* -f: pr invocation. (line 128)
+* -F: pr invocation. (line 128)
+* -f <1>: od invocation. (line 181)
+* -f: nl invocation. (line 75)
+* -f FORMAT: seq invocation. (line 24)
+* -G: id invocation. (line 27)
+* -g <1>: id invocation. (line 23)
+* -g: stty invocation. (line 41)
+* -G: Access permission tests.
+ (line 31)
+* -g <1>: Access permission tests.
+ (line 9)
+* -g: install invocation. (line 53)
+* -G: What information is listed.
+ (line 110)
+* -g <1>: What information is listed.
+ (line 105)
+* -g: sort invocation. (line 87)
+* -ge: Numeric tests. (line 16)
+* -gt: Numeric tests. (line 16)
+* -H: who invocation. (line 48)
+* -h: File type tests. (line 23)
+* -H: du invocation. (line 80)
+* -h: du invocation. (line 75)
+* -H: df invocation. (line 50)
+* -h: df invocation. (line 45)
+* -H: chgrp invocation. (line 67)
+* -h: chgrp invocation. (line 32)
+* -H: chown invocation. (line 139)
+* -h: chown invocation. (line 104)
+* -H: cp invocation. (line 106)
+* -h: What information is listed.
+ (line 116)
+* -H: Which files are listed.
+ (line 36)
+* -h <1>: pr invocation. (line 134)
+* -h: nl invocation. (line 79)
+* -H: Traversing symlinks. (line 18)
+* -h: Block size. (line 138)
+* -i <1>: env invocation. (line 45)
+* -i <2>: uname invocation. (line 34)
+* -i <3>: who invocation. (line 52)
+* -i <4>: tee invocation. (line 30)
+* -i <5>: df invocation. (line 54)
+* -i <6>: ln invocation. (line 71)
+* -i <7>: rm invocation. (line 42)
+* -i <8>: mv invocation. (line 59)
+* -i <9>: cp invocation. (line 113)
+* -i: What information is listed.
+ (line 122)
+* -I: Which files are listed.
+ (line 63)
+* -i <1>: expand invocation. (line 35)
+* -i <2>: join invocation. (line 57)
+* -i <3>: uniq invocation. (line 57)
+* -i <4>: sort invocation. (line 114)
+* -i <5>: pr invocation. (line 140)
+* -i <6>: od invocation. (line 184)
+* -i: nl invocation. (line 83)
+* -I TIMESPEC: Options for date. (line 30)
+* -J: pr invocation. (line 147)
+* -j: od invocation. (line 55)
+* -k <1>: Access permission tests.
+ (line 12)
+* -k <2>: du invocation. (line 85)
+* -k <3>: df invocation. (line 59)
+* -k <4>: General output formatting.
+ (line 61)
+* -k <5>: sort invocation. (line 163)
+* -k <6>: csplit invocation. (line 85)
+* -k: Block size. (line 138)
+* -l <1>: su invocation. (line 53)
+* -l: who invocation. (line 75)
+* -L <1>: File type tests. (line 23)
+* -L <2>: stat invocation. (line 22)
+* -L: du invocation. (line 96)
+* -l <1>: du invocation. (line 91)
+* -l: df invocation. (line 65)
+* -L <1>: chgrp invocation. (line 72)
+* -L <2>: chown invocation. (line 144)
+* -L: cp invocation. (line 121)
+* -l <1>: cp invocation. (line 117)
+* -l: What information is listed.
+ (line 130)
+* -L <1>: Which files are listed.
+ (line 77)
+* -L: wc invocation. (line 57)
+* -l <1>: wc invocation. (line 53)
+* -l <2>: split invocation. (line 30)
+* -l <3>: pr invocation. (line 156)
+* -l <4>: od invocation. (line 187)
+* -l: nl invocation. (line 87)
+* -L: Traversing symlinks. (line 22)
+* -le: Numeric tests. (line 16)
+* -lt: Numeric tests. (line 16)
+* -m <1>: su invocation. (line 64)
+* -m <2>: uname invocation. (line 39)
+* -m <3>: who invocation. (line 56)
+* -m <4>: touch invocation. (line 77)
+* -m <5>: readlink invocation. (line 41)
+* -m <6>: mknod invocation. (line 43)
+* -m <7>: mkfifo invocation. (line 21)
+* -m <8>: mkdir invocation. (line 24)
+* -m <9>: install invocation. (line 59)
+* -m: General output formatting.
+ (line 67)
+* -M: sort invocation. (line 120)
+* -m <1>: sort invocation. (line 23)
+* -m <2>: wc invocation. (line 45)
+* -m: pr invocation. (line 164)
+* -n <1>: nice invocation. (line 34)
+* -n <2>: uname invocation. (line 44)
+* -n <3>: id invocation. (line 31)
+* -n <4>: String tests. (line 19)
+* -n <5>: echo invocation. (line 17)
+* -n <6>: readlink invocation. (line 46)
+* -n: ln invocation. (line 75)
+* -N: Formatting the file names.
+ (line 17)
+* -n <1>: What information is listed.
+ (line 179)
+* -n <2>: cut invocation. (line 55)
+* -n <3>: sort invocation. (line 128)
+* -n <4>: csplit invocation. (line 80)
+* -n <5>: tail invocation. (line 129)
+* -n: head invocation. (line 30)
+* -N: pr invocation. (line 198)
+* -n: pr invocation. (line 177)
+* -N: od invocation. (line 63)
+* -n <1>: nl invocation. (line 95)
+* -n: cat invocation. (line 52)
+* -n NUMBER: shred invocation. (line 96)
+* -ne: Numeric tests. (line 16)
+* -nt: File characteristic tests.
+ (line 15)
+* -o <1>: uname invocation. (line 53)
+* -o: Connectives for test.
+ (line 15)
+* -O: Access permission tests.
+ (line 28)
+* -o <1>: install invocation. (line 68)
+* -o <2>: What information is listed.
+ (line 183)
+* -o <3>: sort invocation. (line 171)
+* -o <4>: pr invocation. (line 204)
+* -o: od invocation. (line 190)
+* -ot: File characteristic tests.
+ (line 19)
+* -p <1>: su invocation. (line 64)
+* -p <2>: uname invocation. (line 48)
+* -p <3>: pathchk invocation. (line 30)
+* -p: File type tests. (line 28)
+* -P <1>: du invocation. (line 102)
+* -P <2>: df invocation. (line 76)
+* -P <3>: chgrp invocation. (line 76)
+* -P: chown invocation. (line 148)
+* -p <1>: rmdir invocation. (line 22)
+* -p <2>: mkdir invocation. (line 31)
+* -p <3>: install invocation. (line 74)
+* -p: cp invocation. (line 130)
+* -P: cp invocation. (line 125)
+* -p <1>: dircolors invocation.
+ (line 38)
+* -p: nl invocation. (line 108)
+* -P: Traversing symlinks. (line 26)
+* -q <1>: who invocation. (line 60)
+* -q: readlink invocation. (line 52)
+* -Q: Formatting the file names.
+ (line 30)
+* -q <1>: Formatting the file names.
+ (line 23)
+* -q <2>: csplit invocation. (line 100)
+* -q <3>: tail invocation. (line 134)
+* -q: head invocation. (line 36)
+* -r <1>: uname invocation. (line 57)
+* -r: Options for date. (line 74)
+* -R: Options for date. (line 61)
+* -r <1>: id invocation. (line 36)
+* -r <2>: Access permission tests.
+ (line 15)
+* -r: touch invocation. (line 81)
+* -R <1>: chmod invocation. (line 58)
+* -R <2>: chgrp invocation. (line 63)
+* -R <3>: chown invocation. (line 136)
+* -R: rm invocation. (line 58)
+* -r <1>: rm invocation. (line 58)
+* -r: cp invocation. (line 189)
+* -R: cp invocation. (line 189)
+* -r: Sorting the output. (line 28)
+* -R: Which files are listed.
+ (line 84)
+* -r <1>: sort invocation. (line 155)
+* -r <2>: sum invocation. (line 25)
+* -r <3>: pr invocation. (line 211)
+* -r: tac invocation. (line 26)
+* -s <1>: su invocation. (line 75)
+* -s <2>: uname invocation. (line 61)
+* -s <3>: Options for date. (line 79)
+* -s <4>: who invocation. (line 64)
+* -s <5>: tty invocation. (line 18)
+* -s: File characteristic tests.
+ (line 12)
+* -S <1>: File type tests. (line 31)
+* -S: du invocation. (line 129)
+* -s <1>: du invocation. (line 125)
+* -s: readlink invocation. (line 52)
+* -S: ln invocation. (line 100)
+* -s: ln invocation. (line 94)
+* -S <1>: mv invocation. (line 90)
+* -S: install invocation. (line 88)
+* -s: install invocation. (line 84)
+* -S: cp invocation. (line 251)
+* -s: cp invocation. (line 243)
+* -S: Sorting the output. (line 33)
+* -s <1>: What information is listed.
+ (line 189)
+* -s <2>: paste invocation. (line 34)
+* -s <3>: cut invocation. (line 59)
+* -s: uniq invocation. (line 42)
+* -S: sort invocation. (line 191)
+* -s <1>: sort invocation. (line 185)
+* -s <2>: sum invocation. (line 31)
+* -s <3>: csplit invocation. (line 100)
+* -s: fold invocation. (line 29)
+* -S: pr invocation. (line 225)
+* -s <1>: pr invocation. (line 216)
+* -s <2>: fmt invocation. (line 47)
+* -s: od invocation. (line 193)
+* -S: od invocation. (line 68)
+* -s <1>: nl invocation. (line 112)
+* -s <2>: tac invocation. (line 33)
+* -s: cat invocation. (line 58)
+* -S: Backup options. (line 50)
+* -s BYTES: shred invocation. (line 103)
+* -su: su invocation. (line 25)
+* -T: who invocation. (line 93)
+* -t <1>: File type tests. (line 34)
+* -t: stat invocation. (line 28)
+* -T: df invocation. (line 109)
+* -t: df invocation. (line 103)
+* -T: ln invocation. (line 109)
+* -t: ln invocation. (line 105)
+* -T: mv invocation. (line 99)
+* -t: mv invocation. (line 95)
+* -T: install invocation. (line 97)
+* -t: install invocation. (line 93)
+* -T: cp invocation. (line 260)
+* -t: cp invocation. (line 256)
+* -T: General output formatting.
+ (line 83)
+* -t <1>: Sorting the output. (line 37)
+* -t <2>: unexpand invocation. (line 24)
+* -t: expand invocation. (line 22)
+* -T: sort invocation. (line 224)
+* -t <1>: sort invocation. (line 207)
+* -t: md5sum invocation. (line 63)
+* -T: pr invocation. (line 251)
+* -t <1>: pr invocation. (line 240)
+* -t <2>: fmt invocation. (line 40)
+* -t: od invocation. (line 76)
+* -T: cat invocation. (line 67)
+* -t: cat invocation. (line 63)
+* -u <1>: env invocation. (line 39)
+* -u <2>: Options for date. (line 84)
+* -u <3>: who invocation. (line 69)
+* -u <4>: id invocation. (line 41)
+* -u <5>: Access permission tests.
+ (line 18)
+* -u <6>: shred invocation. (line 109)
+* -u <7>: mv invocation. (line 72)
+* -u: cp invocation. (line 265)
+* -U: Sorting the output. (line 49)
+* -u <1>: Sorting the output. (line 42)
+* -u <2>: uniq invocation. (line 96)
+* -u <3>: sort invocation. (line 233)
+* -u <4>: fmt invocation. (line 53)
+* -u: cat invocation. (line 70)
+* -v <1>: uname invocation. (line 72)
+* -v <2>: chmod invocation. (line 48)
+* -v <3>: chgrp invocation. (line 55)
+* -v <4>: chown invocation. (line 128)
+* -v <5>: rmdir invocation. (line 32)
+* -v <6>: readlink invocation. (line 56)
+* -v: mkdir invocation. (line 38)
+* -V: ln invocation. (line 118)
+* -v <1>: ln invocation. (line 114)
+* -v <2>: shred invocation. (line 115)
+* -v: rm invocation. (line 62)
+* -V: mv invocation. (line 104)
+* -v: mv invocation. (line 82)
+* -V: install invocation. (line 106)
+* -v: install invocation. (line 102)
+* -V: cp invocation. (line 279)
+* -v <1>: cp invocation. (line 275)
+* -v <2>: Sorting the output. (line 56)
+* -v <3>: tail invocation. (line 138)
+* -v <4>: head invocation. (line 40)
+* -v <5>: pr invocation. (line 256)
+* -v <6>: od invocation. (line 145)
+* -v <7>: nl invocation. (line 117)
+* -v: cat invocation. (line 74)
+* -w <1>: who invocation. (line 93)
+* -w <2>: Access permission tests.
+ (line 21)
+* -w <3>: General output formatting.
+ (line 89)
+* -w <4>: uniq invocation. (line 101)
+* -w <5>: md5sum invocation. (line 68)
+* -w <6>: wc invocation. (line 49)
+* -w: fold invocation. (line 35)
+* -W: pr invocation. (line 269)
+* -w <1>: pr invocation. (line 260)
+* -w <2>: fmt invocation. (line 59)
+* -w <3>: od invocation. (line 152)
+* -w: nl invocation. (line 122)
+* -WIDTH: fmt invocation. (line 59)
+* -x <1>: Access permission tests.
+ (line 24)
+* -x <2>: du invocation. (line 134)
+* -x <3>: df invocation. (line 134)
+* -x <4>: shred invocation. (line 119)
+* -x <5>: cp invocation. (line 285)
+* -x: General output formatting.
+ (line 79)
+* -X: Sorting the output. (line 63)
+* -x: od invocation. (line 196)
+* -X FILE: du invocation. (line 144)
+* -z <1>: String tests. (line 15)
+* -z <2>: shred invocation. (line 129)
+* -z <3>: sort invocation. (line 247)
+* -z: csplit invocation. (line 89)
+* .cshrc: su invocation. (line 44)
+* /: Numeric expressions. (line 15)
+* /bin/sh: su invocation. (line 12)
+* /etc/passwd: su invocation. (line 12)
+* /etc/shells: su invocation. (line 64)
+* 128-bit checksum: md5sum invocation. (line 6)
+* 16-bit checksum: sum invocation. (line 6)
+* 4.2 file system type: df invocation. (line 121)
+* <: Relations for expr. (line 22)
+* <=: Relations for expr. (line 22)
+* = <1>: Relations for expr. (line 22)
+* =: String tests. (line 22)
+* ==: Relations for expr. (line 22)
+* >: Relations for expr. (line 22)
+* >=: Relations for expr. (line 22)
+* \( regexp operator: String expressions. (line 24)
+* \+ regexp operator: String expressions. (line 28)
+* \? regexp operator: String expressions. (line 28)
+* \c: printf invocation. (line 23)
+* \OOO: printf invocation. (line 57)
+* \uhhhh: printf invocation. (line 62)
+* \Uhhhhhhhh: printf invocation. (line 62)
+* \xHH: printf invocation. (line 57)
+* \| regexp operator: String expressions. (line 28)
+* _POSIX2_VERSION: Standards conformance.
+ (line 19)
+* abbreviations for months: Calendar date items. (line 38)
+* access permission tests: Access permission tests.
+ (line 6)
+* access permissions, changing: chmod invocation. (line 6)
+* access time, changing: touch invocation. (line 54)
+* access time, printing or sorting files by: Sorting the output.
+ (line 42)
+* across columns: pr invocation. (line 84)
+* across, listing files: General output formatting.
+ (line 79)
+* adding permissions: Setting Permissions. (line 38)
+* addition: Numeric expressions. (line 11)
+* ago in date strings: Relative items in date strings.
+ (line 23)
+* all repeated lines, outputting: uniq invocation. (line 67)
+* alnum: Character sets. (line 87)
+* alpha: Character sets. (line 90)
+* alternate ebcdic, converting to: dd invocation. (line 62)
+* always color option: General output formatting.
+ (line 27)
+* am i: who invocation. (line 21)
+* am in date strings: Time of day items. (line 21)
+* and operator <1>: Relations for expr. (line 17)
+* and operator: Connectives for test.
+ (line 12)
+* append: dd invocation. (line 135)
+* appending to the output file: dd invocation. (line 135)
+* appropriate privileges <1>: nice invocation. (line 6)
+* appropriate privileges <2>: hostname invocation. (line 6)
+* appropriate privileges <3>: Setting the time. (line 6)
+* appropriate privileges: install invocation. (line 68)
+* arbitrary date strings, parsing: Options for date. (line 11)
+* arbitrary text, displaying: echo invocation. (line 6)
+* arithmetic tests: Numeric tests. (line 6)
+* ASCII dump of files: od invocation. (line 6)
+* ascii, converting to: dd invocation. (line 54)
+* atime, changing: touch invocation. (line 54)
+* atime, printing or sorting files by: Sorting the output. (line 42)
+* attributes, file: Changing file attributes.
+ (line 6)
+* authors of get_date: Authors of get_date. (line 6)
+* auto color option: General output formatting.
+ (line 25)
+* automounter file systems: df invocation. (line 32)
+* b for block special file: mknod invocation. (line 26)
+* background jobs, stopping at terminal write: Local. (line 41)
+* backslash escapes <1>: echo invocation. (line 20)
+* backslash escapes: Character sets. (line 14)
+* backslash sequences for file names: Formatting the file names.
+ (line 11)
+* backup files, ignoring: Which files are listed.
+ (line 23)
+* backup options: Backup options. (line 6)
+* backup suffix: Backup options. (line 50)
+* backups, making <1>: ln invocation. (line 55)
+* backups, making <2>: mv invocation. (line 50)
+* backups, making <3>: install invocation. (line 36)
+* backups, making <4>: cp invocation. (line 61)
+* backups, making: Backup options. (line 13)
+* backups, making only: cp invocation. (line 42)
+* basename: basename invocation. (line 6)
+* baud rate, setting: Special. (line 43)
+* beeping at input buffer full: Input. (line 56)
+* beginning of time: Time directives. (line 39)
+* beginning of time, for POSIX: Seconds since the Epoch.
+ (line 13)
+* Bellovin, Steven M.: Authors of get_date. (line 6)
+* Berets, Jim: Authors of get_date. (line 6)
+* Berry, K. <1>: Authors of get_date. (line 14)
+* Berry, K.: Introduction. (line 19)
+* binary and text I/O in cat: cat invocation. (line 20)
+* binary input files: md5sum invocation. (line 24)
+* blank: Character sets. (line 93)
+* blank lines, numbering: nl invocation. (line 87)
+* blanks, ignoring leading: sort invocation. (line 70)
+* block (space-padding): dd invocation. (line 71)
+* block size <1>: dd invocation. (line 31)
+* block size: Block size. (line 6)
+* block size of conversion: dd invocation. (line 35)
+* block size of input: dd invocation. (line 25)
+* block size of output: dd invocation. (line 28)
+* block special check: File type tests. (line 10)
+* block special files: mknod invocation. (line 11)
+* block special files, creating: mknod invocation. (line 6)
+* BLOCK_SIZE: Block size. (line 12)
+* BLOCKSIZE: Block size. (line 12)
+* body, numbering: nl invocation. (line 17)
+* Bourne shell syntax for color setup: dircolors invocation.
+ (line 27)
+* breaks, cause interrupts: Input. (line 10)
+* breaks, ignoring: Input. (line 7)
+* brkint: Input. (line 10)
+* bs: dd invocation. (line 31)
+* BSD sum: sum invocation. (line 25)
+* BSD tail: tail invocation. (line 19)
+* BSD touch compatibility: touch invocation. (line 72)
+* bsN: Output. (line 55)
+* bugs, reporting: Introduction. (line 12)
+* built-in shell commands, conflicts with <1>: nice invocation.
+ (line 25)
+* built-in shell commands, conflicts with <2>: pwd invocation.
+ (line 10)
+* built-in shell commands, conflicts with: test invocation. (line 28)
+* byte count: wc invocation. (line 6)
+* byte-swapping: dd invocation. (line 90)
+* c for character special file: mknod invocation. (line 29)
+* C shell syntax for color setup: dircolors invocation.
+ (line 33)
+* C-s/C-q flow control: Input. (line 38)
+* calendar date item: Calendar date items. (line 6)
+* case folding: sort invocation. (line 81)
+* case translation: Local. (line 36)
+* case, ignored in dates: General date syntax. (line 64)
+* cat: cat invocation. (line 6)
+* cbreak: Combination. (line 52)
+* cbs: dd invocation. (line 35)
+* CD-ROM file system type: df invocation. (line 125)
+* cdfs file system type: df invocation. (line 125)
+* change or print terminal settings: stty invocation. (line 6)
+* changed files, verbosely describing: chgrp invocation. (line 17)
+* changed owners, verbosely describing: chown invocation. (line 66)
+* changing access permissions: chmod invocation. (line 6)
+* changing file attributes: Changing file attributes.
+ (line 6)
+* changing file ownership: chown invocation. (line 6)
+* changing file timestamps: touch invocation. (line 6)
+* changing group ownership <1>: chgrp invocation. (line 6)
+* changing group ownership: chown invocation. (line 6)
+* changing special permissions: Changing Special Permissions.
+ (line 6)
+* character classes: Character sets. (line 74)
+* character count: wc invocation. (line 6)
+* character size: Control. (line 19)
+* character special check: File type tests. (line 13)
+* character special files: mknod invocation. (line 11)
+* character special files, creating: mknod invocation. (line 6)
+* characters, special: Characters. (line 6)
+* check file types: test invocation. (line 6)
+* checking for sortedness: sort invocation. (line 17)
+* checksum, 128-bit: md5sum invocation. (line 6)
+* checksum, 16-bit: sum invocation. (line 6)
+* chgrp: chgrp invocation. (line 6)
+* chmod: chmod invocation. (line 6)
+* chown: chown invocation. (line 6)
+* chroot: chroot invocation. (line 6)
+* cksum: cksum invocation. (line 6)
+* clocal: Control. (line 33)
+* cntrl: Character sets. (line 96)
+* color database, printing: dircolors invocation.
+ (line 38)
+* color setup: dircolors invocation.
+ (line 6)
+* color, distinguishing file types with: General output formatting.
+ (line 21)
+* cols: Special. (line 27)
+* COLUMNS: Special. (line 30)
+* columns: Special. (line 27)
+* COLUMNS: General output formatting.
+ (line 89)
+* combination settings: Combination. (line 6)
+* comm: comm invocation. (line 6)
+* commands for controlling processes: Process control. (line 6)
+* commands for delaying: Delaying. (line 6)
+* commands for exit status: Conditions. (line 6)
+* commands for file name manipulation: File name manipulation.
+ (line 6)
+* commands for invoking other commands: Modified command invocation.
+ (line 6)
+* commands for printing text: Printing text. (line 6)
+* commands for printing the working context: Working context. (line 6)
+* commands for printing user information: User information. (line 6)
+* commands for redirection: Redirection. (line 6)
+* commands for system context: System context. (line 6)
+* commas, outputting between files: General output formatting.
+ (line 67)
+* comments, in dates: General date syntax. (line 64)
+* common field, joining on: join invocation. (line 6)
+* common lines: comm invocation. (line 18)
+* common options: Common options. (line 6)
+* compare values: test invocation. (line 6)
+* comparing sorted files: comm invocation. (line 6)
+* comparison operators: Relations for expr. (line 22)
+* concatenate and write files: cat invocation. (line 6)
+* conditional executability: Conditional Executability.
+ (line 6)
+* conditions: Conditions. (line 6)
+* conflicts with shell built-ins <1>: nice invocation. (line 25)
+* conflicts with shell built-ins <2>: pwd invocation. (line 10)
+* conflicts with shell built-ins: test invocation. (line 28)
+* connectives, logical <1>: Relations for expr. (line 6)
+* connectives, logical: Connectives for test.
+ (line 6)
+* context splitting: csplit invocation. (line 6)
+* context, system: System context. (line 6)
+* control characters, using ^C: Local. (line 51)
+* control settings: Control. (line 6)
+* controlling terminal: dd invocation. (line 161)
+* conv: dd invocation. (line 48)
+* conversion block size: dd invocation. (line 35)
+* converting tabs to spaces: expand invocation. (line 6)
+* converting while copying a file: dd invocation. (line 6)
+* cooked: Combination. (line 37)
+* Coordinated Universal Time: Options for date. (line 84)
+* copying directories recursively: cp invocation. (line 76)
+* copying existing permissions: Copying Permissions. (line 6)
+* copying files: cat invocation. (line 6)
+* copying files and directories: cp invocation. (line 6)
+* copying files and setting attributes: install invocation. (line 6)
+* core utilities: Top. (line 19)
+* count: dd invocation. (line 44)
+* cp: cp invocation. (line 6)
+* crashes and corruption: sync invocation. (line 11)
+* CRC checksum: cksum invocation. (line 6)
+* cread: Control. (line 30)
+* creating directories: mkdir invocation. (line 6)
+* creating FIFOs (named pipes): mkfifo invocation. (line 6)
+* creating links (hard only): link invocation. (line 6)
+* creating links (hard or soft): ln invocation. (line 6)
+* creating output file, avoiding: dd invocation. (line 98)
+* creating output file, requiring: dd invocation. (line 102)
+* crN: Output. (line 45)
+* crown margin: fmt invocation. (line 34)
+* crt: Combination. (line 74)
+* crterase: Local. (line 22)
+* crtkill: Local. (line 56)
+* crtscts: Control. (line 36)
+* csh syntax for color setup: dircolors invocation.
+ (line 33)
+* csN: Control. (line 19)
+* csplit: csplit invocation. (line 6)
+* cstopb: Control. (line 27)
+* ctime, printing or sorting by: Sorting the output. (line 14)
+* ctlecho: Local. (line 51)
+* current working directory, printing: pwd invocation. (line 6)
+* cut: cut invocation. (line 6)
+* cyclic redundancy check: cksum invocation. (line 6)
+* data, erasing: shred invocation. (line 6)
+* database for color setup, printing: dircolors invocation.
+ (line 38)
+* date: date invocation. (line 6)
+* date directives: Date directives. (line 6)
+* date format, ISO 8601: Calendar date items. (line 30)
+* date input formats: Date input formats. (line 6)
+* date options: Options for date. (line 6)
+* date strings, parsing: Options for date. (line 11)
+* day in date strings: Relative items in date strings.
+ (line 15)
+* day of week item: Day of week items. (line 6)
+* dd: dd invocation. (line 6)
+* dec: Combination. (line 77)
+* decctlq: Combination. (line 63)
+* delay for a specified time: sleep invocation. (line 6)
+* delaying commands: Delaying. (line 6)
+* deleting characters: Squeezing. (line 6)
+* dereferencing symbolic links: ln invocation. (line 40)
+* descriptor follow option: tail invocation. (line 41)
+* destination directory <1>: ln invocation. (line 105)
+* destination directory <2>: mv invocation. (line 95)
+* destination directory <3>: install invocation. (line 93)
+* destination directory <4>: cp invocation. (line 256)
+* destination directory: Target directory. (line 15)
+* destinations, multiple output: tee invocation. (line 6)
+* device file, disk: df invocation. (line 19)
+* df: df invocation. (line 6)
+* DF_BLOCK_SIZE: Block size. (line 12)
+* dictionary order: sort invocation. (line 75)
+* differing lines: comm invocation. (line 18)
+* digit: Character sets. (line 99)
+* dir: dir invocation. (line 6)
+* dircolors: dircolors invocation.
+ (line 6)
+* direct: dd invocation. (line 141)
+* direct I/O: dd invocation. (line 141)
+* directives, date: Date directives. (line 6)
+* directives, literal: Literal directives. (line 6)
+* directives, time: Time directives. (line 6)
+* directories, copying: cp invocation. (line 6)
+* directories, copying recursively: cp invocation. (line 76)
+* directories, creating: mkdir invocation. (line 6)
+* directories, creating with given attributes: install invocation.
+ (line 44)
+* directories, removing (recursively): rm invocation. (line 58)
+* directories, removing empty: rmdir invocation. (line 6)
+* directories, removing with unlink: rm invocation. (line 25)
+* directory check: File type tests. (line 16)
+* directory components, printing: dirname invocation. (line 6)
+* directory deletion, ignoring failures: rmdir invocation. (line 17)
+* directory deletion, reporting: rmdir invocation. (line 32)
+* directory listing: ls invocation. (line 6)
+* directory listing, brief: dir invocation. (line 6)
+* directory listing, recursive: Which files are listed.
+ (line 84)
+* directory listing, verbose: vdir invocation. (line 6)
+* directory order, listing by: Sorting the output. (line 21)
+* directory, stripping from file names: basename invocation. (line 6)
+* dired Emacs mode support: What information is listed.
+ (line 16)
+* dirname: dirname invocation. (line 6)
+* disabling special characters: Characters. (line 13)
+* disk allocation: What information is listed.
+ (line 189)
+* disk device file: df invocation. (line 19)
+* disk usage: Disk usage. (line 6)
+* disk usage by file system: df invocation. (line 6)
+* disk usage for files: du invocation. (line 6)
+* diskette file system: df invocation. (line 129)
+* displacement of dates: Relative items in date strings.
+ (line 6)
+* displaying text: echo invocation. (line 6)
+* displaying value of a symbolic link: readlink invocation. (line 6)
+* division: Numeric expressions. (line 15)
+* do nothing, successfully: true invocation. (line 6)
+* do nothing, unsuccessfully: false invocation. (line 6)
+* DOS file system: df invocation. (line 129)
+* double spacing: pr invocation. (line 96)
+* down columns: pr invocation. (line 70)
+* dsusp: Characters. (line 53)
+* dsync: dd invocation. (line 144)
+* du: du invocation. (line 6)
+* DU_BLOCK_SIZE: Block size. (line 12)
+* ebcdic, converting to: dd invocation. (line 58)
+* echo <1>: Local. (line 18)
+* echo: echo invocation. (line 6)
+* echoctl: Local. (line 51)
+* echoe: Local. (line 22)
+* echok: Local. (line 26)
+* echoke: Local. (line 56)
+* echonl: Local. (line 29)
+* echoprt: Local. (line 46)
+* effective uid and gid, printing: id invocation. (line 6)
+* effective UID, printing: whoami invocation. (line 6)
+* efs file system type: df invocation. (line 121)
+* Eggert, Paul: Authors of get_date. (line 6)
+* eight-bit characters <1>: Combination. (line 55)
+* eight-bit characters: Control. (line 19)
+* eight-bit input: Input. (line 23)
+* ek: Combination. (line 22)
+* empty files, creating: touch invocation. (line 18)
+* empty lines, numbering: nl invocation. (line 87)
+* entire files, output of: Output of entire files.
+ (line 6)
+* env: env invocation. (line 6)
+* environment variables, printing: printenv invocation. (line 6)
+* environment, preserving: su invocation. (line 64)
+* environment, printing: env invocation. (line 30)
+* environment, running a program in a modified: env invocation.
+ (line 6)
+* eof: Characters. (line 32)
+* eol: Characters. (line 35)
+* eol2: Characters. (line 38)
+* epoch, for POSIX: Seconds since the Epoch.
+ (line 13)
+* epoch, seconds since: Time directives. (line 39)
+* equal string check: String tests. (line 22)
+* equivalence classes: Character sets. (line 123)
+* erase: Characters. (line 26)
+* erasing data: shred invocation. (line 6)
+* error messages, omitting <1>: chmod invocation. (line 34)
+* error messages, omitting <2>: chgrp invocation. (line 23)
+* error messages, omitting: chown invocation. (line 72)
+* evaluation of expressions: expr invocation. (line 6)
+* even parity: Control. (line 13)
+* evenp: Combination. (line 9)
+* exabyte, definition of: Block size. (line 116)
+* examples of date: Examples of date. (line 6)
+* examples of expr: Examples of expr. (line 6)
+* exbibyte, definition of: Block size. (line 120)
+* excl: dd invocation. (line 102)
+* excluding files from du: du invocation. (line 138)
+* executable file check: Access permission tests.
+ (line 24)
+* executables and file type, marking: General output formatting.
+ (line 36)
+* execute permission: Mode Structure. (line 14)
+* execute permission, symbolic: Setting Permissions. (line 63)
+* existence-of-file check: File characteristic tests.
+ (line 9)
+* existing backup method: Backup options. (line 39)
+* exit status commands: Conditions. (line 6)
+* exit status of chroot: chroot invocation. (line 47)
+* exit status of env: env invocation. (line 49)
+* exit status of expr: expr invocation. (line 39)
+* exit status of false: false invocation. (line 6)
+* exit status of ls: ls invocation. (line 29)
+* exit status of nice: nice invocation. (line 44)
+* exit status of nohup: nohup invocation. (line 36)
+* exit status of pathchk: pathchk invocation. (line 38)
+* exit status of printenv: printenv invocation. (line 17)
+* exit status of sort: sort invocation. (line 49)
+* exit status of su: su invocation. (line 80)
+* exit status of test: test invocation. (line 40)
+* exit status of true: true invocation. (line 6)
+* exit status of tty: tty invocation. (line 21)
+* expand: expand invocation. (line 6)
+* expr: expr invocation. (line 6)
+* expression evaluation <1>: expr invocation. (line 6)
+* expression evaluation: test invocation. (line 6)
+* expressions, numeric: Numeric expressions. (line 6)
+* expressions, string: String expressions. (line 6)
+* extension, sorting files by: Sorting the output. (line 63)
+* factor: factor invocation. (line 6)
+* failure exit status: false invocation. (line 6)
+* false: false invocation. (line 6)
+* fascism: su invocation. (line 87)
+* fdatasync: dd invocation. (line 116)
+* ffN: Output. (line 63)
+* field separator character: sort invocation. (line 207)
+* fields, padding numeric: Padding. (line 6)
+* FIFOs, creating: mkfifo invocation. (line 6)
+* file attributes, changing: Changing file attributes.
+ (line 6)
+* file characteristic tests: File characteristic tests.
+ (line 6)
+* file contents, dumping unambiguously: od invocation. (line 6)
+* file information, preserving: cp invocation. (line 130)
+* file name manipulation: File name manipulation.
+ (line 6)
+* file name pattern expansion, disabled: su invocation. (line 44)
+* file names, checking validity and portability: pathchk invocation.
+ (line 6)
+* file names, stripping directory and suffix: basename invocation.
+ (line 6)
+* file offset radix: od invocation. (line 36)
+* file ownership, changing: chown invocation. (line 6)
+* file permissions, numeric: Numeric Modes. (line 6)
+* file sizes: du invocation. (line 45)
+* file space usage: du invocation. (line 6)
+* file status: stat invocation. (line 6)
+* file system disk usage: df invocation. (line 6)
+* file system sizes: df invocation. (line 40)
+* file system space, retrieving current data more slowly: df invocation.
+ (line 96)
+* file system space, retrieving old data more quickly: df invocation.
+ (line 69)
+* file system status: stat invocation. (line 6)
+* file system types, limiting output to certain: df invocation.
+ (line 65)
+* file system types, printing: df invocation. (line 109)
+* file systems: stat invocation. (line 17)
+* file systems and hard links: ln invocation. (line 6)
+* file systems, omitting copying to different: cp invocation. (line 285)
+* file timestamps, changing: touch invocation. (line 6)
+* file type and executables, marking: General output formatting.
+ (line 36)
+* file type tests: File type tests. (line 6)
+* file type, marking: General output formatting.
+ (line 73)
+* file types: Special file types. (line 9)
+* file types, special: Special file types. (line 6)
+* file utilities: Top. (line 19)
+* files beginning with -, removing: rm invocation. (line 65)
+* files, copying: cp invocation. (line 6)
+* fingerprint, 128-bit: md5sum invocation. (line 6)
+* first in date strings: General date syntax. (line 26)
+* first part of files, outputting: head invocation. (line 6)
+* flow control, hardware: Control. (line 36)
+* flow control, software: Input. (line 43)
+* flushing, disabling: Local. (line 32)
+* fmt: fmt invocation. (line 6)
+* fold: fold invocation. (line 6)
+* folding long input lines: fold invocation. (line 6)
+* footers, numbering: nl invocation. (line 17)
+* force deletion: shred invocation. (line 91)
+* formatting file contents: Formatting file contents.
+ (line 6)
+* formatting of numbers in seq: seq invocation. (line 24)
+* formatting times <1>: date invocation. (line 20)
+* formatting times: pr invocation. (line 100)
+* fortnight in date strings: Relative items in date strings.
+ (line 15)
+* fsck: rm invocation. (line 25)
+* fsync: dd invocation. (line 120)
+* general date syntax: General date syntax. (line 6)
+* general numeric sort: sort invocation. (line 87)
+* get_date: Date input formats. (line 6)
+* gibibyte, definition of: Block size. (line 99)
+* gigabyte, definition of: Block size. (line 95)
+* giving away permissions: Umask and Protection.
+ (line 12)
+* globbing, disabled: su invocation. (line 44)
+* GMT: Options for date. (line 84)
+* grand total of disk space: du invocation. (line 50)
+* graph: Character sets. (line 102)
+* Greenwich Mean Time: Options for date. (line 84)
+* group owner, default: Mode Structure. (line 27)
+* group ownership of installed files, setting: install invocation.
+ (line 53)
+* group ownership, changing <1>: chgrp invocation. (line 6)
+* group ownership, changing: chown invocation. (line 6)
+* group wheel, not supported: su invocation. (line 87)
+* group, permissions for: Setting Permissions. (line 26)
+* groups: groups invocation. (line 6)
+* growing files: tail invocation. (line 41)
+* hangups, immunity to: nohup invocation. (line 6)
+* hard link check: File characteristic tests.
+ (line 23)
+* hard link, defined: ln invocation. (line 32)
+* hard links to directories: ln invocation. (line 61)
+* hard links, counting in du: du invocation. (line 91)
+* hard links, creating <1>: ln invocation. (line 6)
+* hard links, creating: link invocation. (line 6)
+* hard links, preserving: cp invocation. (line 89)
+* hardware class: uname invocation. (line 39)
+* hardware flow control: Control. (line 36)
+* hardware platform: uname invocation. (line 34)
+* hardware type: uname invocation. (line 39)
+* hat notation for control characters: Local. (line 51)
+* head: head invocation. (line 6)
+* headers, numbering: nl invocation. (line 17)
+* help, online: Common options. (line 29)
+* hex dump of files: od invocation. (line 6)
+* High Sierra file system: df invocation. (line 125)
+* holes, copying files with: cp invocation. (line 205)
+* HOME: su invocation. (line 18)
+* horizontal, listing files: General output formatting.
+ (line 79)
+* host processor type: uname invocation. (line 48)
+* hostid: hostid invocation. (line 6)
+* hostname <1>: hostname invocation. (line 6)
+* hostname: uname invocation. (line 44)
+* hour in date strings: Relative items in date strings.
+ (line 15)
+* hsfs file system type: df invocation. (line 125)
+* human-readable output <1>: du invocation. (line 75)
+* human-readable output <2>: df invocation. (line 45)
+* human-readable output <3>: What information is listed.
+ (line 116)
+* human-readable output: Block size. (line 43)
+* hup[cl]: Control. (line 23)
+* hurd, author, printing: What information is listed.
+ (line 10)
+* ibs: dd invocation. (line 25)
+* icanon: Local. (line 11)
+* icrnl: Input. (line 32)
+* id: id invocation. (line 6)
+* idle time: who invocation. (line 69)
+* iexten: Local. (line 15)
+* if: dd invocation. (line 17)
+* iflag: dd invocation. (line 125)
+* ignbrk: Input. (line 7)
+* igncr: Input. (line 29)
+* ignore file systems: df invocation. (line 32)
+* ignoring case: sort invocation. (line 81)
+* ignpar: Input. (line 13)
+* imaxbel: Input. (line 56)
+* immunity to hangups: nohup invocation. (line 6)
+* implementation, hardware: uname invocation. (line 34)
+* including files from du: du invocation. (line 62)
+* indenting lines: pr invocation. (line 204)
+* index: String expressions. (line 45)
+* information, about current users: who invocation. (line 6)
+* initial part of files, outputting: head invocation. (line 6)
+* initial tabs, converting: expand invocation. (line 35)
+* inlcr: Input. (line 26)
+* inode number, printing: What information is listed.
+ (line 122)
+* inode usage: df invocation. (line 54)
+* inode, and hard links: ln invocation. (line 32)
+* inodes, written buffered: sync invocation. (line 6)
+* inpck: Input. (line 20)
+* input block size: dd invocation. (line 25)
+* input encoding, UTF-8: Input. (line 35)
+* input settings: Input. (line 6)
+* input tabs: pr invocation. (line 120)
+* install: install invocation. (line 6)
+* interactivity <1>: mv invocation. (line 64)
+* interactivity: cp invocation. (line 178)
+* intr: Characters. (line 20)
+* invocation of commands, modified: Modified command invocation.
+ (line 6)
+* isig: Local. (line 7)
+* ISO 8601 date format: Calendar date items. (line 30)
+* ISO/IEC 10646: printf invocation. (line 62)
+* ispeed: Special. (line 16)
+* istrip: Input. (line 23)
+* items in date strings: General date syntax. (line 6)
+* iterations, selecting the number of: shred invocation. (line 96)
+* iuclc: Input. (line 48)
+* iutf8: Input. (line 35)
+* ixany: Input. (line 52)
+* ixoff: Input. (line 43)
+* ixon: Input. (line 38)
+* join: join invocation. (line 6)
+* kernel name: uname invocation. (line 61)
+* kernel release: uname invocation. (line 57)
+* kernel version: uname invocation. (line 72)
+* kibibyte, definition of: Block size. (line 83)
+* kibibytes for file sizes: du invocation. (line 85)
+* kibibytes for file system sizes: df invocation. (line 59)
+* kill <1>: kill invocation. (line 6)
+* kill: Characters. (line 29)
+* kilobyte, definition of: Block size. (line 78)
+* Knuth, Donald E.: fmt invocation. (line 19)
+* language, in dates: General date syntax. (line 40)
+* last DAY <1>: Day of week items. (line 15)
+* last DAY: Options for date. (line 11)
+* last in date strings: General date syntax. (line 26)
+* last part of files, outputting: tail invocation. (line 6)
+* LC_ALL <1>: ls invocation. (line 17)
+* LC_ALL: sort invocation. (line 40)
+* LC_COLLATE <1>: Relations for expr. (line 22)
+* LC_COLLATE <2>: join invocation. (line 11)
+* LC_COLLATE <3>: comm invocation. (line 12)
+* LC_COLLATE <4>: uniq invocation. (line 21)
+* LC_COLLATE: sort invocation. (line 40)
+* LC_CTYPE <1>: printf invocation. (line 62)
+* LC_CTYPE: sort invocation. (line 70)
+* LC_MESSAGES: pr invocation. (line 13)
+* LC_NUMERIC <1>: printf invocation. (line 51)
+* LC_NUMERIC <2>: sort invocation. (line 87)
+* LC_NUMERIC: Block size. (line 57)
+* LC_TIME <1>: date invocation. (line 11)
+* LC_TIME <2>: Formatting file timestamps.
+ (line 30)
+* LC_TIME <3>: sort invocation. (line 120)
+* LC_TIME: pr invocation. (line 107)
+* LCASE: Combination. (line 71)
+* lcase: Combination. (line 71)
+* lcase, converting to: dd invocation. (line 82)
+* lchown <1>: chgrp invocation. (line 27)
+* lchown: chown invocation. (line 99)
+* leading directories, creating missing: install invocation. (line 44)
+* leading directory components, stripping: basename invocation.
+ (line 6)
+* left margin: pr invocation. (line 204)
+* length: String expressions. (line 50)
+* limiting output of du: du invocation. (line 106)
+* line: Special. (line 37)
+* line count: wc invocation. (line 6)
+* line numbering: nl invocation. (line 6)
+* line settings of terminal: stty invocation. (line 6)
+* line-breaking: fmt invocation. (line 19)
+* line-by-line comparison: comm invocation. (line 6)
+* LINES: Special. (line 30)
+* link: link invocation. (line 6)
+* links, creating <1>: ln invocation. (line 6)
+* links, creating: link invocation. (line 6)
+* Linux file system types: df invocation. (line 121)
+* literal directives: Literal directives. (line 6)
+* litout: Combination. (line 59)
+* ln: ln invocation. (line 6)
+* ln format for nl: nl invocation. (line 98)
+* lnext: Characters. (line 62)
+* local file system types: df invocation. (line 121)
+* local settings: Local. (line 6)
+* logging out and continuing to run: nohup invocation. (line 6)
+* logical and operator <1>: Relations for expr. (line 17)
+* logical and operator: Connectives for test.
+ (line 12)
+* logical connectives <1>: Relations for expr. (line 6)
+* logical connectives: Connectives for test.
+ (line 6)
+* logical or operator <1>: Relations for expr. (line 11)
+* logical or operator: Connectives for test.
+ (line 15)
+* logical pages, numbering on: nl invocation. (line 12)
+* login name, printing: logname invocation. (line 6)
+* login sessions, printing users with: users invocation. (line 6)
+* login shell: su invocation. (line 18)
+* login shell, creating: su invocation. (line 53)
+* login time: who invocation. (line 11)
+* LOGNAME: su invocation. (line 18)
+* logname: logname invocation. (line 6)
+* long ls format: What information is listed.
+ (line 130)
+* lower: Character sets. (line 105)
+* lowercase, translating to output: Output. (line 12)
+* ls: ls invocation. (line 6)
+* LS_BLOCK_SIZE: Block size. (line 12)
+* LS_COLORS: dircolors invocation.
+ (line 16)
+* machine type: uname invocation. (line 39)
+* machine-readable stty output: stty invocation. (line 41)
+* MacKenzie, D.: Introduction. (line 19)
+* MacKenzie, David: Authors of get_date. (line 6)
+* Makefiles, installing programs in: install invocation. (line 26)
+* manipulating files: Basic operations. (line 6)
+* manipulation of file names: File name manipulation.
+ (line 6)
+* match: String expressions. (line 36)
+* matching patterns: String expressions. (line 11)
+* md5sum: md5sum invocation. (line 6)
+* mebibyte, definition of: Block size. (line 92)
+* megabyte, definition of: Block size. (line 88)
+* merging files: paste invocation. (line 6)
+* merging files in parallel: pr invocation. (line 6)
+* merging sorted files: sort invocation. (line 23)
+* message status: who invocation. (line 93)
+* message-digest, 128-bit: md5sum invocation. (line 6)
+* Meyering, J.: Introduction. (line 19)
+* Meyering, Jim: Authors of get_date. (line 6)
+* midnight in date strings: Time of day items. (line 21)
+* min: Special. (line 7)
+* minute in date strings: Relative items in date strings.
+ (line 15)
+* minutes, time zone correction by: Time of day items. (line 29)
+* MIT AI lab: su invocation. (line 92)
+* mkdir: mkdir invocation. (line 6)
+* mkfifo: mkfifo invocation. (line 6)
+* mknod: mknod invocation. (line 6)
+* modem control: Control. (line 33)
+* modes and umask: Umask and Protection.
+ (line 6)
+* modes of created directories, setting: mkdir invocation. (line 24)
+* modes of created FIFOs, setting: mkfifo invocation. (line 21)
+* modification time, sorting files by: Sorting the output. (line 37)
+* modified command invocation: Modified command invocation.
+ (line 6)
+* modified environment, running a program in a: env invocation.
+ (line 6)
+* modify time, changing: touch invocation. (line 77)
+* modifying scheduling priority: nice invocation. (line 6)
+* month in date strings: Relative items in date strings.
+ (line 15)
+* month names in date strings: Calendar date items. (line 38)
+* months, sorting by: sort invocation. (line 120)
+* months, written-out: General date syntax. (line 36)
+* MS-DOS file system: df invocation. (line 129)
+* mtime, changing: touch invocation. (line 77)
+* multicolumn output, generating: pr invocation. (line 6)
+* multiple changes to permissions: Multiple Changes. (line 6)
+* multiplication: Numeric expressions. (line 15)
+* multipliers after numbers: dd invocation. (line 175)
+* mv: mv invocation. (line 6)
+* name follow option: tail invocation. (line 41)
+* name of kernel: uname invocation. (line 61)
+* named pipe check: File type tests. (line 28)
+* named pipes, creating: mkfifo invocation. (line 6)
+* network node name: uname invocation. (line 44)
+* newer files, copying only: cp invocation. (line 265)
+* newer files, moving only: mv invocation. (line 72)
+* newer-than file check: File characteristic tests.
+ (line 15)
+* newline echoing after kill: Local. (line 26)
+* newline, echoing: Local. (line 29)
+* newline, translating to crlf: Output. (line 19)
+* newline, translating to return: Input. (line 26)
+* next DAY <1>: Day of week items. (line 15)
+* next DAY: Options for date. (line 11)
+* next in date strings: General date syntax. (line 26)
+* NFS file system type: df invocation. (line 116)
+* NFS mounts from BSD to HP-UX <1>: du invocation. (line 149)
+* NFS mounts from BSD to HP-UX: What information is listed.
+ (line 197)
+* nice: nice invocation. (line 6)
+* nice value: nice invocation. (line 6)
+* nl <1>: Combination. (line 18)
+* nl: nl invocation. (line 6)
+* nlN: Output. (line 39)
+* no-op: true invocation. (line 6)
+* nocreat: dd invocation. (line 98)
+* noctty: dd invocation. (line 161)
+* node name: uname invocation. (line 44)
+* noerror: dd invocation. (line 95)
+* noflsh: Local. (line 32)
+* nofollow: dd invocation. (line 158)
+* nohup: nohup invocation. (line 6)
+* nohup.out: nohup invocation. (line 6)
+* non-directories, copying as special files: cp invocation. (line 76)
+* non-directory suffix, stripping: dirname invocation. (line 6)
+* nonblock: dd invocation. (line 155)
+* nonblocking I/O: dd invocation. (line 155)
+* none backup method: Backup options. (line 31)
+* none color option: General output formatting.
+ (line 23)
+* none, sorting option for ls: Sorting the output. (line 49)
+* nonempty file check: File characteristic tests.
+ (line 12)
+* nonprinting characters, ignoring: sort invocation. (line 114)
+* nonzero-length string check: String tests. (line 19)
+* noon in date strings: Time of day items. (line 21)
+* not-equal string check: String tests. (line 25)
+* notrunc: dd invocation. (line 108)
+* now in date strings: Relative items in date strings.
+ (line 33)
+* numbered backup method: Backup options. (line 35)
+* numbering lines: nl invocation. (line 6)
+* numbers, written-out: General date syntax. (line 26)
+* numeric expressions: Numeric expressions. (line 6)
+* numeric field padding: Padding. (line 6)
+* numeric modes: Numeric Modes. (line 6)
+* numeric operations: Numeric operations. (line 6)
+* numeric sequences: seq invocation. (line 6)
+* numeric sort: sort invocation. (line 128)
+* numeric tests: Numeric tests. (line 6)
+* numeric uid and gid: What information is listed.
+ (line 179)
+* obs: dd invocation. (line 28)
+* ocrnl: Output. (line 16)
+* octal dump of files: od invocation. (line 6)
+* octal numbers for file modes: Numeric Modes. (line 6)
+* od: od invocation. (line 6)
+* odd parity: Control. (line 13)
+* oddp: Combination. (line 14)
+* of: dd invocation. (line 20)
+* ofdel: Output. (line 34)
+* ofill: Output. (line 30)
+* oflag: dd invocation. (line 129)
+* olcuc: Output. (line 12)
+* older-than file check: File characteristic tests.
+ (line 19)
+* one file system, restricting du to: du invocation. (line 134)
+* one-line output format: df invocation. (line 76)
+* onlcr: Output. (line 19)
+* onlret: Output. (line 27)
+* onocr: Output. (line 23)
+* operating on characters: Operating on characters.
+ (line 6)
+* operating on sorted files: Operating on sorted files.
+ (line 6)
+* operating system name: uname invocation. (line 53)
+* opost: Output. (line 9)
+* option delimiter: Common options. (line 36)
+* options for date: Options for date. (line 6)
+* or operator <1>: Relations for expr. (line 11)
+* or operator: Connectives for test.
+ (line 15)
+* ordinal numbers: General date syntax. (line 26)
+* ospeed: Special. (line 19)
+* other permissions: Setting Permissions. (line 29)
+* output block size: dd invocation. (line 28)
+* output file name prefix <1>: csplit invocation. (line 62)
+* output file name prefix: split invocation. (line 14)
+* output file name suffix: csplit invocation. (line 66)
+* output format: stat invocation. (line 33)
+* output format, portable: df invocation. (line 76)
+* output NUL-terminated lines: du invocation. (line 112)
+* output of entire files: Output of entire files.
+ (line 6)
+* output of parts of files: Output of parts of files.
+ (line 6)
+* output settings: Output. (line 6)
+* output tabs: pr invocation. (line 140)
+* overwriting of input, allowed: sort invocation. (line 171)
+* owned by effective gid check: Access permission tests.
+ (line 31)
+* owned by effective uid check: Access permission tests.
+ (line 28)
+* owner of file, permissions for: Setting Permissions. (line 23)
+* owner, default: Mode Structure. (line 27)
+* ownership of installed files, setting: install invocation. (line 68)
+* p for FIFO file: mknod invocation. (line 23)
+* pad character: Output. (line 34)
+* pad instead of timing for delaying: Output. (line 30)
+* padding of numeric fields: Padding. (line 6)
+* paragraphs, reformatting: fmt invocation. (line 6)
+* parenb: Control. (line 9)
+* parent directories and cp: cp invocation. (line 167)
+* parent directories, creating: mkdir invocation. (line 31)
+* parent directories, creating missing: install invocation. (line 44)
+* parent directories, removing: rmdir invocation. (line 22)
+* parentheses for grouping: expr invocation. (line 31)
+* parity: Combination. (line 10)
+* parity errors, marking: Input. (line 16)
+* parity, ignoring: Input. (line 13)
+* parmrk: Input. (line 16)
+* parodd: Control. (line 13)
+* parsing date strings: Options for date. (line 11)
+* parts of files, output of: Output of parts of files.
+ (line 6)
+* pass8: Combination. (line 55)
+* passwd entry, and su shell: su invocation. (line 12)
+* paste: paste invocation. (line 6)
+* Paterson, R.: Introduction. (line 19)
+* PATH <1>: su invocation. (line 53)
+* PATH: env invocation. (line 24)
+* pathchk: pathchk invocation. (line 6)
+* pattern matching: String expressions. (line 11)
+* PC file system: df invocation. (line 129)
+* pcfs: df invocation. (line 129)
+* pebibyte, definition of: Block size. (line 113)
+* permission tests: Access permission tests.
+ (line 6)
+* permissions of installed files, setting: install invocation.
+ (line 59)
+* permissions, changing access: chmod invocation. (line 6)
+* permissions, copying existing: Copying Permissions. (line 6)
+* permissions, for changing file timestamps: touch invocation.
+ (line 20)
+* permissions, output by ls: What information is listed.
+ (line 148)
+* petabyte, definition of: Block size. (line 109)
+* phone directory order: sort invocation. (line 75)
+* pieces, splitting a file into: split invocation. (line 6)
+* Pinard, F. <1>: Authors of get_date. (line 14)
+* Pinard, F.: Introduction. (line 19)
+* pipe fitting: tee invocation. (line 6)
+* Plass, Michael F.: fmt invocation. (line 19)
+* platform, hardware: uname invocation. (line 34)
+* pm in date strings: Time of day items. (line 21)
+* portable file names, checking for: pathchk invocation. (line 6)
+* portable output format: df invocation. (line 76)
+* POSIX: Introduction. (line 11)
+* POSIX output format: df invocation. (line 76)
+* POSIXLY_CORRECT <1>: printf invocation. (line 42)
+* POSIXLY_CORRECT <2>: echo invocation. (line 68)
+* POSIXLY_CORRECT <3>: sort invocation. (line 179)
+* POSIXLY_CORRECT <4>: pr invocation. (line 107)
+* POSIXLY_CORRECT <5>: Standards conformance.
+ (line 6)
+* POSIXLY_CORRECT: Common options. (line 11)
+* POSIXLY_CORRECT, and block size: Block size. (line 12)
+* pr: pr invocation. (line 6)
+* prime factors: factor invocation. (line 6)
+* print: Character sets. (line 108)
+* print name of current directory: pwd invocation. (line 6)
+* print system information: uname invocation. (line 6)
+* print terminal file name: tty invocation. (line 6)
+* printenv: printenv invocation. (line 6)
+* printf: printf invocation. (line 6)
+* printing all or some environment variables: printenv invocation.
+ (line 6)
+* printing color database: dircolors invocation.
+ (line 38)
+* printing current user information: who invocation. (line 6)
+* printing current usernames: users invocation. (line 6)
+* printing groups a user is in: groups invocation. (line 6)
+* printing real and effective uid and gid: id invocation. (line 6)
+* printing text: echo invocation. (line 6)
+* printing text, commands for: Printing text. (line 6)
+* printing the current time: date invocation. (line 6)
+* printing the effective UID: whoami invocation. (line 6)
+* printing the host identifier: hostid invocation. (line 6)
+* printing the hostname: hostname invocation. (line 6)
+* printing user's login name: logname invocation. (line 6)
+* printing, preparing files for: pr invocation. (line 6)
+* priority, modifying: nice invocation. (line 6)
+* processes, commands for controlling: Process control. (line 6)
+* prompting, and ln: ln invocation. (line 71)
+* prompting, and mv: mv invocation. (line 34)
+* prompting, and rm: rm invocation. (line 11)
+* prompts, forcing: mv invocation. (line 59)
+* prompts, omitting: mv invocation. (line 55)
+* prterase: Local. (line 46)
+* ptx: ptx invocation. (line 6)
+* punct: Character sets. (line 111)
+* pure numbers in date strings: Pure numbers in date strings.
+ (line 6)
+* pwd: pwd invocation. (line 6)
+* quit: Characters. (line 23)
+* quoting style: Formatting the file names.
+ (line 34)
+* radix for file offsets: od invocation. (line 36)
+* ranges: Character sets. (line 46)
+* raw: Combination. (line 43)
+* read errors, ignoring: dd invocation. (line 95)
+* read from stdin and write to stdout and files: tee invocation.
+ (line 6)
+* read permission: Mode Structure. (line 8)
+* read permission, symbolic: Setting Permissions. (line 57)
+* read system call, and holes: cp invocation. (line 205)
+* readable file check: Access permission tests.
+ (line 15)
+* readlink: readlink invocation. (line 6)
+* real uid and gid, printing: id invocation. (line 6)
+* recursive directory listing: Which files are listed.
+ (line 84)
+* recursively changing access permissions: chmod invocation. (line 58)
+* recursively changing file ownership: chown invocation. (line 136)
+* recursively changing group ownership: chgrp invocation. (line 63)
+* recursively copying directories: cp invocation. (line 76)
+* redirection: Redirection. (line 6)
+* reformatting paragraph text: fmt invocation. (line 6)
+* regular expression matching: String expressions. (line 11)
+* regular file check: File type tests. (line 19)
+* relations, numeric or string: Relations for expr. (line 6)
+* relative items in date strings: Relative items in date strings.
+ (line 6)
+* release of kernel: uname invocation. (line 57)
+* remainder: Numeric expressions. (line 15)
+* remote hostname: who invocation. (line 11)
+* removing empty directories: rmdir invocation. (line 6)
+* removing files after shredding: shred invocation. (line 109)
+* removing files or directories: rm invocation. (line 6)
+* removing files or directories (via the unlink syscall): unlink invocation.
+ (line 6)
+* removing permissions: Setting Permissions. (line 42)
+* repeated characters: Character sets. (line 67)
+* repeated lines, outputting: uniq invocation. (line 61)
+* repeated output of a string: yes invocation. (line 6)
+* restricted deletion flag: Mode Structure. (line 47)
+* restricted shell: su invocation. (line 64)
+* return, ignoring: Input. (line 29)
+* return, translating to newline <1>: Output. (line 16)
+* return, translating to newline: Input. (line 32)
+* reverse sorting <1>: Sorting the output. (line 28)
+* reverse sorting: sort invocation. (line 155)
+* reversing files: tac invocation. (line 6)
+* rm: rm invocation. (line 6)
+* rmdir: rmdir invocation. (line 6)
+* rn format for nl: nl invocation. (line 101)
+* root as default owner: install invocation. (line 68)
+* root directory, allow recursive destruction: rm invocation. (line 52)
+* root directory, allow recursive modification <1>: chmod invocation.
+ (line 43)
+* root directory, allow recursive modification <2>: chgrp invocation.
+ (line 45)
+* root directory, allow recursive modification: chown invocation.
+ (line 117)
+* root directory, disallow recursive destruction: rm invocation.
+ (line 47)
+* root directory, disallow recursive modification <1>: chmod invocation.
+ (line 38)
+* root directory, disallow recursive modification <2>: chgrp invocation.
+ (line 40)
+* root directory, disallow recursive modification: chown invocation.
+ (line 112)
+* root directory, running a program in a specified: chroot invocation.
+ (line 6)
+* root, becoming: su invocation. (line 6)
+* rows: Special. (line 22)
+* rprnt: Characters. (line 56)
+* RTS/CTS flow control: Control. (line 36)
+* running a program in a modified environment: env invocation.
+ (line 6)
+* running a program in a specified root directory: chroot invocation.
+ (line 6)
+* rz format for nl: nl invocation. (line 104)
+* Salz, Rich: Authors of get_date. (line 6)
+* same file check: File characteristic tests.
+ (line 23)
+* sane: Combination. (line 26)
+* scheduling priority, modifying: nice invocation. (line 6)
+* screen columns: fold invocation. (line 14)
+* seconds since the epoch: Time directives. (line 39)
+* section delimiters of pages: nl invocation. (line 68)
+* seek: dd invocation. (line 41)
+* self-backups: cp invocation. (line 42)
+* send a signal to processes: kill invocation. (line 6)
+* sentences and line-breaking: fmt invocation. (line 19)
+* separator for numbers in seq: seq invocation. (line 30)
+* seq: seq invocation. (line 6)
+* sequence of numbers: seq invocation. (line 6)
+* set-group-id check: Access permission tests.
+ (line 9)
+* set-user-id check: Access permission tests.
+ (line 18)
+* setgid: Mode Structure. (line 41)
+* setting permissions: Setting Permissions. (line 46)
+* setting the hostname: hostname invocation. (line 6)
+* setting the time: Setting the time. (line 6)
+* setuid: Mode Structure. (line 38)
+* setup for color: dircolors invocation.
+ (line 6)
+* sh syntax for color setup: dircolors invocation.
+ (line 27)
+* SHELL: su invocation. (line 18)
+* SHELL environment variable, and color: dircolors invocation.
+ (line 16)
+* shell utilities: Top. (line 19)
+* shred: shred invocation. (line 6)
+* SI output <1>: du invocation. (line 118)
+* SI output <2>: df invocation. (line 89)
+* SI output <3>: What information is listed.
+ (line 205)
+* SI output: Block size. (line 43)
+* simple backup method: Backup options. (line 44)
+* SIMPLE_BACKUP_SUFFIX: Backup options. (line 50)
+* single-column output of files: General output formatting.
+ (line 10)
+* size: Special. (line 30)
+* size for main memory sorting: sort invocation. (line 191)
+* size of file to shred: shred invocation. (line 103)
+* size of files, reporting: What information is listed.
+ (line 189)
+* size of files, sorting files by: Sorting the output. (line 33)
+* skip: dd invocation. (line 38)
+* sleep: sleep invocation. (line 6)
+* socket check: File type tests. (line 31)
+* software flow control: Input. (line 43)
+* sort: sort invocation. (line 6)
+* sort field: sort invocation. (line 163)
+* sort stability: sort invocation. (line 29)
+* sort zero-terminated lines: sort invocation. (line 247)
+* sort's last-resort comparison: sort invocation. (line 29)
+* sorted files, operations on: Operating on sorted files.
+ (line 6)
+* sorting files: sort invocation. (line 6)
+* sorting ls output: Sorting the output. (line 6)
+* space: Character sets. (line 114)
+* sparse files, copying: cp invocation. (line 205)
+* special characters: Characters. (line 6)
+* special file types: Special file types. (line 6)
+* special files: mknod invocation. (line 11)
+* special settings: Special. (line 6)
+* specifying sets of characters: Character sets. (line 6)
+* speed: Special. (line 40)
+* split: split invocation. (line 6)
+* splitting a file into pieces: split invocation. (line 6)
+* splitting a file into pieces by context: csplit invocation. (line 6)
+* squeezing blank lines: cat invocation. (line 58)
+* squeezing repeat characters: Squeezing. (line 6)
+* Stallman, R.: Introduction. (line 19)
+* standard input: Common options. (line 41)
+* standard output: Common options. (line 41)
+* start: Characters. (line 44)
+* stat: stat invocation. (line 6)
+* status time, printing or sorting by: Sorting the output. (line 14)
+* sticky: Mode Structure. (line 47)
+* sticky bit check: Access permission tests.
+ (line 12)
+* stop: Characters. (line 47)
+* stop bits: Control. (line 27)
+* strftime and date: date invocation. (line 20)
+* string constants, outputting: od invocation. (line 68)
+* string expressions: String expressions. (line 6)
+* string tests: String tests. (line 6)
+* strip directory and suffix from file names: basename invocation.
+ (line 6)
+* stripping non-directory suffix: dirname invocation. (line 6)
+* stripping symbol table information: install invocation. (line 84)
+* stripping trailing slashes <1>: mv invocation. (line 85)
+* stripping trailing slashes: cp invocation. (line 238)
+* stty: stty invocation. (line 6)
+* su: su invocation. (line 6)
+* substitute user and group ids: su invocation. (line 6)
+* substr: String expressions. (line 40)
+* subtracting permissions: Setting Permissions. (line 42)
+* subtraction: Numeric expressions. (line 11)
+* successful exit: true invocation. (line 6)
+* suffix, stripping from file names: basename invocation. (line 6)
+* sum: sum invocation. (line 6)
+* summarizing files: Summarizing files. (line 6)
+* super-user, becoming: su invocation. (line 6)
+* superblock, writing: sync invocation. (line 6)
+* supplementary groups, printing: groups invocation. (line 6)
+* susp: Characters. (line 50)
+* swab (byte-swapping): dd invocation. (line 90)
+* swap space, saving text image in: Mode Structure. (line 47)
+* swtch: Characters. (line 41)
+* symbol table information, stripping: install invocation. (line 84)
+* symbolic (soft) links, creating: ln invocation. (line 6)
+* symbolic link check: File type tests. (line 23)
+* symbolic link to directory, controlling traversal of: Traversing symlinks.
+ (line 6)
+* symbolic link to directory, never traverse <1>: chgrp invocation.
+ (line 76)
+* symbolic link to directory, never traverse <2>: chown invocation.
+ (line 148)
+* symbolic link to directory, never traverse: Traversing symlinks.
+ (line 26)
+* symbolic link to directory, traverse each that is encountered <1>: chgrp invocation.
+ (line 72)
+* symbolic link to directory, traverse each that is encountered <2>: chown invocation.
+ (line 144)
+* symbolic link to directory, traverse each that is encountered: Traversing symlinks.
+ (line 22)
+* symbolic link to directory, traverse each that is specified on the command line <1>: chgrp invocation.
+ (line 67)
+* symbolic link to directory, traverse each that is specified on the command line <2>: chown invocation.
+ (line 139)
+* symbolic link to directory, traverse each that is specified on the command line: Traversing symlinks.
+ (line 18)
+* symbolic link, defined: ln invocation. (line 40)
+* symbolic links and pwd: pwd invocation. (line 6)
+* symbolic links, changing group: chgrp invocation. (line 32)
+* symbolic links, changing owner <1>: chgrp invocation. (line 27)
+* symbolic links, changing owner: chown invocation. (line 76)
+* symbolic links, copying: cp invocation. (line 89)
+* symbolic links, copying with: cp invocation. (line 243)
+* symbolic links, dereferencing: Which files are listed.
+ (line 36)
+* symbolic links, dereferencing in du: du invocation. (line 96)
+* symbolic links, dereferencing in stat: stat invocation. (line 22)
+* symbolic links, following: dd invocation. (line 158)
+* symbolic links, permissions of: chmod invocation. (line 10)
+* symbolic modes: Symbolic Modes. (line 6)
+* sync <1>: sync invocation. (line 6)
+* sync: dd invocation. (line 152)
+* sync (padding with nulls): dd invocation. (line 111)
+* synchronize disk and memory: sync invocation. (line 6)
+* synchronized data and metadata I/O: dd invocation. (line 152)
+* synchronized data and metadata writes, before finishing: dd invocation.
+ (line 120)
+* synchronized data reads: dd invocation. (line 144)
+* synchronized data writes, before finishing: dd invocation. (line 116)
+* syslog: su invocation. (line 29)
+* system context: System context. (line 6)
+* system information, printing: uname invocation. (line 6)
+* system name, printing: hostname invocation. (line 6)
+* System V sum: sum invocation. (line 31)
+* tab stops, setting: expand invocation. (line 22)
+* tabN: Output. (line 51)
+* tabs: Combination. (line 66)
+* tabs to spaces, converting: expand invocation. (line 6)
+* tac: tac invocation. (line 6)
+* tagged paragraphs: fmt invocation. (line 40)
+* tail: tail invocation. (line 6)
+* tandem: Input. (line 43)
+* target directory <1>: ln invocation. (line 105)
+* target directory <2>: mv invocation. (line 95)
+* target directory <3>: install invocation. (line 93)
+* target directory <4>: cp invocation. (line 256)
+* target directory: Target directory. (line 6)
+* tebibyte, definition of: Block size. (line 106)
+* tee: tee invocation. (line 6)
+* telephone directory order: sort invocation. (line 75)
+* temporary directory: sort invocation. (line 224)
+* terabyte, definition of: Block size. (line 102)
+* TERM: su invocation. (line 53)
+* terminal check: File type tests. (line 34)
+* terminal file name, printing: tty invocation. (line 6)
+* terminal lines, currently used: who invocation. (line 11)
+* terminal settings: stty invocation. (line 6)
+* terminal, using color iff: General output formatting.
+ (line 25)
+* terse output: stat invocation. (line 28)
+* test: test invocation. (line 6)
+* text image, saving in swap space: Mode Structure. (line 47)
+* text input files: md5sum invocation. (line 63)
+* text utilities: Top. (line 19)
+* text, displaying: echo invocation. (line 6)
+* text, reformatting: fmt invocation. (line 6)
+* this in date strings: Relative items in date strings.
+ (line 33)
+* time <1>: Special. (line 11)
+* time: touch invocation. (line 62)
+* time directives: Time directives. (line 6)
+* time formats <1>: date invocation. (line 20)
+* time formats: pr invocation. (line 100)
+* time of day item: Time of day items. (line 6)
+* time setting: Setting the time. (line 6)
+* time style: Formatting file timestamps.
+ (line 26)
+* time units: sleep invocation. (line 11)
+* time zone correction: Time of day items. (line 29)
+* time zone item <1>: Time zone items. (line 6)
+* time zone item: General date syntax. (line 44)
+* time, printing or setting: date invocation. (line 6)
+* TIME_STYLE: Formatting file timestamps.
+ (line 106)
+* timestamps of installed files, preserving: install invocation.
+ (line 74)
+* timestamps, changing file: touch invocation. (line 6)
+* TMPDIR: sort invocation. (line 55)
+* today in date strings: Relative items in date strings.
+ (line 33)
+* tomorrow: Options for date. (line 11)
+* tomorrow in date strings: Relative items in date strings.
+ (line 29)
+* topological sort: tsort invocation. (line 6)
+* tostop: Local. (line 41)
+* total counts: wc invocation. (line 12)
+* touch: touch invocation. (line 6)
+* tr: tr invocation. (line 6)
+* trailing slashes: Trailing slashes. (line 6)
+* translating characters: Translating. (line 6)
+* true: true invocation. (line 6)
+* truncating output file, avoiding: dd invocation. (line 108)
+* tsort: tsort invocation. (line 6)
+* tty: tty invocation. (line 6)
+* Twenex: su invocation. (line 92)
+* two-way parity: Control. (line 9)
+* type size: od invocation. (line 112)
+* TZ <1>: Specifying time zone rules.
+ (line 6)
+* TZ <2>: Options for date. (line 84)
+* TZ <3>: date invocation. (line 16)
+* TZ <4>: who invocation. (line 26)
+* TZ <5>: stat invocation. (line 111)
+* TZ <6>: touch invocation. (line 41)
+* TZ <7>: Formatting file timestamps.
+ (line 18)
+* TZ: pr invocation. (line 113)
+* u, and disabling special characters: Characters. (line 13)
+* ucase, converting to: dd invocation. (line 85)
+* ufs file system type: df invocation. (line 121)
+* umask and modes: Umask and Protection.
+ (line 6)
+* uname: uname invocation. (line 6)
+* unblock: dd invocation. (line 76)
+* unexpand: unexpand invocation. (line 6)
+* Unicode: printf invocation. (line 62)
+* uniq: uniq invocation. (line 6)
+* unique lines, outputting: uniq invocation. (line 96)
+* uniquify files: uniq invocation. (line 6)
+* uniquifying output: sort invocation. (line 233)
+* unlink <1>: unlink invocation. (line 6)
+* unlink: rm invocation. (line 25)
+* unprintable characters, ignoring: sort invocation. (line 114)
+* unsorted directory listing: Sorting the output. (line 21)
+* upper: Character sets. (line 117)
+* uppercase, translating to lowercase: Input. (line 48)
+* use time, changing: touch invocation. (line 54)
+* use time, printing or sorting files by: Sorting the output. (line 14)
+* USER: su invocation. (line 18)
+* user id, switching: su invocation. (line 6)
+* user information, commands for: User information. (line 6)
+* user name, printing: logname invocation. (line 6)
+* usernames, printing current: users invocation. (line 6)
+* users: users invocation. (line 6)
+* UTC: Options for date. (line 84)
+* utmp <1>: who invocation. (line 15)
+* utmp <2>: users invocation. (line 14)
+* utmp: logname invocation. (line 6)
+* valid file names, checking for: pathchk invocation. (line 6)
+* vdir: vdir invocation. (line 6)
+* verbose ls format: What information is listed.
+ (line 130)
+* verifying MD5 checksums: md5sum invocation. (line 53)
+* version number, finding: Common options. (line 33)
+* version of kernel: uname invocation. (line 72)
+* version, sorting option for ls: Sorting the output. (line 56)
+* version-control Emacs variable: Backup options. (line 24)
+* VERSION_CONTROL <1>: ln invocation. (line 55)
+* VERSION_CONTROL <2>: mv invocation. (line 50)
+* VERSION_CONTROL <3>: install invocation. (line 36)
+* VERSION_CONTROL <4>: cp invocation. (line 61)
+* VERSION_CONTROL: Backup options. (line 13)
+* vertical sorted files in columns: General output formatting.
+ (line 15)
+* vtN: Output. (line 59)
+* wc: wc invocation. (line 6)
+* week in date strings: Relative items in date strings.
+ (line 15)
+* werase: Characters. (line 59)
+* wheel group, not supported: su invocation. (line 87)
+* who: who invocation. (line 6)
+* who am i: who invocation. (line 21)
+* whoami: whoami invocation. (line 6)
+* word count: wc invocation. (line 6)
+* working context: Working context. (line 6)
+* working directory, printing: pwd invocation. (line 6)
+* wrapping long input lines: fold invocation. (line 6)
+* writable file check: Access permission tests.
+ (line 21)
+* write permission: Mode Structure. (line 11)
+* write permission, symbolic: Setting Permissions. (line 60)
+* write, allowed: who invocation. (line 93)
+* wtmp <1>: who invocation. (line 15)
+* wtmp: users invocation. (line 14)
+* xcase: Local. (line 36)
+* xdigit: Character sets. (line 120)
+* XON/XOFF flow control: Input. (line 38)
+* year in date strings: Relative items in date strings.
+ (line 15)
+* yes: yes invocation. (line 6)
+* yesterday: Options for date. (line 11)
+* yesterday in date strings: Relative items in date strings.
+ (line 29)
+* yottabyte, definition of: Block size. (line 131)
+* Youmans, B.: Introduction. (line 19)
+* zero-length string check: String tests. (line 15)
+* zettabyte, definition of: Block size. (line 123)
+* |: Relations for expr. (line 11)
+
+
+
+Tag Table:
+Node: Top7431
+Node: Introduction20029
+Node: Common options21588
+Node: Exit status24237
+Node: Backup options24967
+Node: Block size27032
+Node: Target directory31936
+Node: Trailing slashes35417
+Node: Traversing symlinks36438
+Node: Treating / specially37509
+Ref: Treating / specially-Footnote-138775
+Node: Special built-in utilities38844
+Node: Standards conformance39977
+Node: Output of entire files41486
+Node: cat invocation42019
+Node: tac invocation44722
+Node: nl invocation45984
+Node: od invocation49863
+Node: Formatting file contents56327
+Node: fmt invocation56778
+Node: pr invocation59591
+Node: fold invocation72682
+Node: Output of parts of files74191
+Node: head invocation74699
+Node: tail invocation76268
+Node: split invocation83175
+Node: csplit invocation85305
+Node: Summarizing files89417
+Node: wc invocation89945
+Node: sum invocation91947
+Node: cksum invocation93352
+Node: md5sum invocation94492
+Node: Operating on sorted files97839
+Node: sort invocation98443
+Ref: sort invocation-Footnote-1115516
+Node: uniq invocation116068
+Node: comm invocation119969
+Node: tsort invocation121297
+Node: tsort background124331
+Node: ptx invocation126094
+Node: General options in ptx128898
+Node: Charset selection in ptx129610
+Node: Input processing in ptx130512
+Node: Output formatting in ptx136206
+Node: Compatibility in ptx142772
+Node: Operating on fields within a line146000
+Node: cut invocation146404
+Node: paste invocation149730
+Node: join invocation151058
+Node: Operating on characters154957
+Node: tr invocation155393
+Node: Character sets157111
+Node: Translating161339
+Node: Squeezing163430
+Node: expand invocation166497
+Node: unexpand invocation168070
+Node: Directory listing169932
+Node: ls invocation170418
+Ref: ls invocation-Footnote-1172232
+Node: Which files are listed172454
+Node: What information is listed175819
+Node: Sorting the output183659
+Node: More details about version sort185979
+Node: General output formatting187478
+Node: Formatting file timestamps190887
+Node: Formatting the file names196117
+Node: dir invocation199032
+Node: vdir invocation199467
+Node: dircolors invocation199869
+Node: Basic operations201349
+Node: cp invocation201969
+Node: dd invocation213682
+Node: install invocation220670
+Node: mv invocation224764
+Node: rm invocation229008
+Node: shred invocation231845
+Node: Special file types238658
+Node: link invocation240154
+Node: ln invocation241160
+Node: mkdir invocation246082
+Node: mkfifo invocation247662
+Node: mknod invocation248651
+Node: readlink invocation250394
+Node: rmdir invocation252135
+Node: unlink invocation253409
+Node: Changing file attributes254368
+Node: chown invocation255181
+Node: chgrp invocation260951
+Node: chmod invocation263705
+Node: touch invocation265879
+Node: Disk usage269992
+Node: df invocation270684
+Node: du invocation275981
+Node: stat invocation281634
+Node: sync invocation284705
+Node: Printing text285632
+Node: echo invocation286006
+Node: printf invocation288183
+Node: yes invocation292890
+Node: Conditions293502
+Node: false invocation294093
+Node: true invocation294838
+Node: test invocation296149
+Node: File type tests298109
+Node: Access permission tests298991
+Node: File characteristic tests299876
+Node: String tests300641
+Node: Numeric tests301306
+Node: Connectives for test302103
+Node: expr invocation302456
+Node: String expressions304694
+Node: Numeric expressions307277
+Node: Relations for expr307915
+Node: Examples of expr309115
+Node: Redirection309843
+Node: tee invocation310288
+Node: File name manipulation311353
+Node: basename invocation311801
+Node: dirname invocation312475
+Node: pathchk invocation313111
+Node: Working context314464
+Node: pwd invocation315108
+Node: stty invocation315782
+Node: Control318542
+Node: Input319302
+Node: Output320778
+Node: Local322034
+Node: Combination323616
+Node: Characters325778
+Node: Special327332
+Node: printenv invocation328698
+Node: tty invocation329461
+Node: User information330167
+Node: id invocation330819
+Node: logname invocation332069
+Node: whoami invocation332696
+Node: groups invocation333183
+Node: users invocation333907
+Node: who invocation334854
+Node: System context337735
+Node: date invocation338225
+Node: Time directives339849
+Node: Date directives341191
+Node: Literal directives343462
+Node: Padding343749
+Node: Setting the time344568
+Node: Options for date345558
+Node: Examples of date348596
+Ref: %s-examples350056
+Node: uname invocation352043
+Node: hostname invocation354283
+Node: hostid invocation354896
+Node: Modified command invocation355583
+Node: chroot invocation356220
+Node: env invocation358340
+Node: nice invocation360419
+Node: nohup invocation363457
+Node: su invocation365140
+Node: Process control369611
+Node: kill invocation369834
+Node: Delaying374200
+Node: sleep invocation374397
+Node: Numeric operations375208
+Node: factor invocation375540
+Node: seq invocation376878
+Node: File permissions380699
+Node: Mode Structure381293
+Node: Symbolic Modes384427
+Node: Setting Permissions385436
+Node: Copying Permissions387987
+Node: Changing Special Permissions388789
+Node: Conditional Executability390425
+Node: Multiple Changes391058
+Node: Umask and Protection392722
+Node: Numeric Modes393827
+Node: Date input formats395636
+Node: General date syntax397989
+Node: Calendar date items400702
+Node: Time of day items402707
+Node: Time zone items404767
+Node: Day of week items406009
+Node: Relative items in date strings407006
+Node: Pure numbers in date strings409816
+Node: Seconds since the Epoch410805
+Node: Specifying time zone rules412438
+Node: Authors of get_date414810
+Node: Opening the software toolbox415570
+Node: Toolbox introduction416242
+Node: I/O redirection418965
+Node: The who command421799
+Node: The cut command422696
+Node: The sort command423759
+Node: The uniq command424463
+Node: Putting the tools together425153
+Ref: Putting the tools together-Footnote-1437110
+Node: GNU Free Documentation License437184
+Node: How to use this License for your documents455693
+Node: Index457100
+
+End Tag Table