This is the GNU file manipulation utilities package.  Most of these
programs have significant advantages over their Unix counterparts,
such as greater speed, additional options, and fewer arbitrary limits.

Summary of changes by release:

1.1.  Some bug fixes, enhancements, and changes for POSIX conformance,
including adding two programs invented by the POSIX committee (create
and mkfifo).

1.2.  An important bug fix for cp on systems that do not have the
ftruncate system call.

1.3.  Added tac and install programs, more bug fixes and POSIX and
ANSI C changes, support for 16 bit machines, and backup file creation
options.

1.4.  Added simple roff -man documentation, cut, paste, and touch
programs, changes to accomodate a new draft of POSIX.2 including
removal of the create program, more bug fixes, and some new options.

The fileutils are intended to be POSIX compliant (with BSD and other
extensions), like the rest of the GNU system.  They are not all quite
there yet; however, the POSIX shell and utilities standard (1003.2)
has not been finalized, either.  They presently don't support
internationalization features, since none of the C libraries that I
have access to do.  (The GNU C library will, but isn't finished.)

The comprehensive Texinfo documentation for these programs is not
finished yet, and needs to be rewritten.  In the interim, the skeletal
man pages provided with this distribution will have to serve.

The ls, dir, and vdir commands are all separate executables instead of
one program that checks argv[0] because people often rename these
programs to things like gls, gnuls, l, etc., and renaming a program
file shouldn't affect how it operates, so that people can get the
behavior they want with whatever name they want.

The GNU ls with the -s option, and at the top of long listings of
directories, reports file sizes in units of 512 bytes by default, as
required by POSIX.  The GNU du does the same thing, also for POSIX.
The GNU ls and du both have a -k option to make them report sizes in
kilobytes instead.

The GNU tail command has no -r option (print in reverse).  Reversing a
file is really a different job from printing the end of a file; the
BSD tail can get away with kludging it in because of its limited size
buffer.  A more versatile way than tail -r to reverse files is the
`tac' command included in this package.

The GNU rm, like every other program that uses getopt, 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 either
	rm -- -f
or
	rm ./-f
The Unix rm's use of "-" for this purpose predates the development of
the getopt standard syntax.

The GNU cp, mv, and ln commands can make backups of files that they
are about to overwrite or remove.  They make backups only when the -b
(+backup) option is given.

The type of backups made can be set with the VERSION_CONTROL
environment variable, which can be overridden by the -V
(+version-control) option.  If VERSION_CONTROL is not set and -V
(+version-control) is not given, the default backup type is
`existing'.

The value of VERSION_CONTROL and the argument to -V (+version-control)
is like GNU Emacs' `version-control' variable; it also accepts
synonyms that are more descriptive.  The valid values are (unique
abbreviations are accepted):

t or numbered		Always make numbered backups.
nil or existing		Make numbered backups of files that already
			have them, simple backups of the others.
never or simple		Always make simple backups.

The suffix used for making simple backup files can be set with the
SIMPLE_BACKUP_SUFFIX environment variable, which can be overridden by
the -S (+suffix) option.  If neither of those is given, the default is
`~', as it is in Emacs.

Backup file names will end up being the same as the original file
names for files that are at the system's filename length limit; when
that happens, the new file will silently replace the backup file that
was just made.  This happens with GNU Emacs, also.  I am not aware of
a clean, simple solution to this problem.

Special thanks to Jim Meyering, Brian Matthews, and Bruce Evans for
help with debugging and porting these programs.

Suggestions and bug reports for these programs should be mailed to
bug-gnu-utils@prep.ai.mit.edu.
