mirror of
https://https.git.savannah.gnu.org/git/coreutils.git
synced 2026-01-30 19:34:26 +00:00
761 lines
38 KiB
Plaintext
761 lines
38 KiB
Plaintext
[4.1.11]
|
||
* `rm symlink-to-unwritable' doesn't prompt [introduced in 4.1.10]
|
||
[4.1.10]
|
||
* rm once again gives a reasonable diagnostic when failing to remove a file
|
||
owned by someone else in a sticky directory [introduced in 4.1.9]
|
||
* df now rounds all quantities up, as per POSIX.
|
||
* New ls time style: long-iso, which generates YYYY-MM-DD HH:MM.
|
||
* Any time style can be preceded by "posix-"; this causes "ls" to
|
||
use traditional timestamp format when in the POSIX locale.
|
||
* The default time style is now posix-long-iso instead of posix-iso.
|
||
Set TIME_STYLE="posix-iso" to revert to the behavior of 4.1.1 thru 4.1.9.
|
||
* `rm dangling-symlink' doesn't prompt [introduced in 4.1.9]
|
||
* stat: remove support for --secure/-s option and related %S and %C format specs
|
||
* stat: rename --link/-l to --dereference/-L.
|
||
The old options will continue to work for a while.
|
||
[4.1.9]
|
||
* rm can now remove very deep hierarchies, in spite of any limit on stack size
|
||
* new programs: link, unlink, and stat
|
||
* New ls option: --author (for the Hurd).
|
||
* `touch -c no-such-file' no longer fails, per POSIX
|
||
[4.1.8]
|
||
* mv no longer mistakenly creates links to preexisting destination files
|
||
that aren't moved
|
||
[4.1.7]
|
||
* rm: close a hole that would allow a running rm process to be subverted
|
||
[4.1.6]
|
||
* New cp option: --copy-contents.
|
||
* cp -r is now equivalent to cp -R. Use cp -R -L --copy-contents to get the
|
||
traditional (and rarely desirable) cp -r behavior.
|
||
* ls now accepts --time-style=+FORMAT, where +FORMAT works like date's format
|
||
* The obsolete usage `touch [-acm] MMDDhhmm[YY] FILE...' is no longer
|
||
supported on systems conforming to POSIX 1003.1-2001. Use touch -t instead.
|
||
* cp and inter-partition mv no longer give a misleading diagnostic in some
|
||
unusual cases
|
||
[4.1.5]
|
||
* cp -r no longer preserves symlinks
|
||
* The block size notation is now compatible with SI and with IEC 60027-2.
|
||
For example, --block-size=1MB now means --block-size=1000000,
|
||
whereas --block-size=1MiB now means --block-size=1048576.
|
||
A missing `B' (e.g. `1M') has the same meaning as before.
|
||
A trailing `B' now means decimal, not binary; this is a silent change.
|
||
The nonstandard `D' suffix (e.g. `1MD') is now obsolescent.
|
||
* -H or --si now outputs the trailing 'B', for consistency with the above.
|
||
* Programs now output trailing 'K' (not 'k') to mean 1024, as per IEC 60027-2.
|
||
* New df, du short option -B is short for --block-size.
|
||
* You can omit an integer `1' before a block size suffix,
|
||
e.g. `df -BG' is equivalent to `df -B 1G' and to `df --block-size=1G'.
|
||
* The following options are now obsolescent, as their names are
|
||
incompatible with IEC 60027-2:
|
||
df, du: -m or --megabytes (use -BM or --block-size=1M)
|
||
df, du, ls: --kilobytes (use --block-size=1K)
|
||
[4.1.4]
|
||
* df --local no longer lists smbfs file systems whose name starts with //
|
||
* dd now detects the Linux/tape/lseek bug at run time and warns about it.
|
||
[4.1.3]
|
||
* ls -R once again outputs a blank line between per-directory groups of files.
|
||
This was broken by the cycle-detection change in 4.1.1.
|
||
* dd once again uses `lseek' on character devices like /dev/mem and /dev/kmem.
|
||
On systems with the linux kernel (at least up to 2.4.16), dd must still
|
||
resort to emulating `skip=N' behavior using reads on tape devices, because
|
||
lseek has no effect, yet appears to succeed. This may be a kernel bug.
|
||
[4.1.2]
|
||
* cp no longer fails when two or more source files are the same;
|
||
now it just gives a warning and doesn't copy the file the second time.
|
||
E.g., cp a a d/ produces this:
|
||
cp: warning: source file `a' specified more than once
|
||
* chmod would set the wrong bit when given symbolic mode strings like
|
||
these: g=o, o=g, o=u. E.g., `chmod a=,o=w,ug=o f' would give a mode
|
||
of --w-r---w- rather than --w--w--w-.
|
||
[4.1.1]
|
||
* mv (likewise for cp), now fails rather than silently clobbering one of
|
||
the source files in the following example:
|
||
rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c
|
||
* ls -R detects directory cycles, per POSIX. It warns and doesn't infloop.
|
||
* cp's -P option now means the same as --no-dereference, per POSIX.
|
||
Use --parents to get the old meaning.
|
||
* When copying with the -H and -L options, cp can preserve logical
|
||
links between source files with --preserve=links
|
||
* cp accepts new options:
|
||
--preserve[={mode,ownership,timestamps,links,all}]
|
||
--no-preserve={mode,ownership,timestamps,links,all}
|
||
* cp's -p and --preserve options remain unchanged and are equivalent
|
||
to `--preserve=mode,ownership,timestamps'
|
||
* mv and cp accept a new option: --reply={yes,no,query}; provides a consistent
|
||
mechanism to control whether one is prompted about certain existing
|
||
destination files. Note that cp's and mv's -f options don't have the
|
||
same meaning: cp's -f option no longer merely turns off `-i'.
|
||
* remove portability limitations (e.g., PATH_MAX on the Hurd, fixes for
|
||
64-bit systems)
|
||
* mv now prompts before overwriting an existing, unwritable destination file
|
||
when stdin is a tty, unless --force (-f) is specified, as per POSIX.
|
||
* mv: fix the bug whereby `mv -uf source dest' would delete source,
|
||
even though it's older than dest.
|
||
* chown's --from=CURRENT_OWNER:CURRENT_GROUP option now works
|
||
* cp now ensures that the set-user-ID and set-group-ID bits are cleared for
|
||
the destination file when when copying and not preserving permissions.
|
||
* `ln -f --backup k k' gives a clearer diagnostic
|
||
* ls no longer truncates user names or group names that are longer
|
||
than 8 characters.
|
||
* ls's new --dereference-command-line option causes it to dereference
|
||
symbolic links on the command-line only. It is the default unless
|
||
one of the -d, -F, or -l options are given.
|
||
* ls -H now means the same as ls --dereference-command-line, as per POSIX.
|
||
* ls -g now acts like ls -l, except it does not display owner, as per POSIX.
|
||
* ls -n now implies -l, as per POSIX.
|
||
* ls can now display dates and times in one of four time styles:
|
||
|
||
- The `full-iso' time style gives full ISO-style time stamps like
|
||
`2001-05-14 23:45:56.477817180 -0700'.
|
||
- The 'iso' time style gives ISO-style time stamps like '2001-05-14 '
|
||
and '05-14 23:45'.
|
||
- The 'locale' time style gives locale-dependent time stamps like
|
||
'touko 14 2001' and 'touko 14 23:45' (in a Finnish locale).
|
||
- The 'posix-iso' time style gives traditional POSIX-locale
|
||
time stamps like 'May 14 2001' and 'May 14 23:45' unless the user
|
||
specifies a non-POSIX locale, in which case it uses ISO-style dates.
|
||
This is the default.
|
||
|
||
You can specify a time style with an option like --time-style='iso'
|
||
or with an environment variable like TIME_STYLE='iso'. GNU Emacs 21
|
||
and later can parse ISO dates, but older Emacs versions cannot, so
|
||
if you are using an older version of Emacs outside the default POSIX
|
||
locale, you may need to set TIME_STYLE="locale".
|
||
|
||
* --full-time is now an alias for "-l --time-style=full-iso".
|
||
|
||
Changes in release 4.1:
|
||
[4.0.45]
|
||
* dd conv=sync,block now pads only with spaces
|
||
* ls's -1 option no longer cancels the effect of a preceding -l
|
||
* regenerate configure using a patched version of autoconf-2.49e to work
|
||
around a bug in its test for a working memcmp function
|
||
* ls: fix off-by-one error introduced with the previous change
|
||
[4.0.44]
|
||
* ls: When given two or more arguments but the only one that exists is a
|
||
directory, don't treat it as if it were the only argument. Before,
|
||
`mkdir d; ls no-dir d 2>/dev/null' would act like `ls d' and produce
|
||
no output. Now, it prints `d:'.
|
||
* touch -d 'last friday' would use a time stamp that was one hour off
|
||
(e.g., 23:00 on *thursday* rather than 00:00 of the preceding friday)
|
||
when run such that the current time and the target date/time fall on
|
||
opposite sides of a daylight savings time transition.
|
||
This problem arises only with relative date strings like `last monday'.
|
||
It is not a problem with strings that include absolute dates.
|
||
[4.0.43]
|
||
* regenerate configure-related files using autoconf-2.49d
|
||
[4.0.42]
|
||
* Using ls's short-named `-H' option evokes the warning that the
|
||
meaning of `-H' will soon change. Use `--si' instead.
|
||
[4.0.41]
|
||
* fix bug in rm introduced in 4.0.38: `chmod 0 f; rm f' would no longer prompt
|
||
before removal.
|
||
[4.0.40]
|
||
* portability fixes, mainly for UnixWare 7.1.1
|
||
[4.0.39]
|
||
* cp and mv accept --strip-trailing-slashes, not just --strip-trailing-slash
|
||
[4.0.38]
|
||
* ls --full-time now implies -l; before, without -l it was a no-op
|
||
[4.0.37]
|
||
* portability fixes for SunOS4.1.1, Fujitsu (f300-fujitsu-uxpv4.1_ES),
|
||
and Unicos (alphaev5-cray-unicosmk2.0.5.X)
|
||
[4.0.36]
|
||
* `mv dir/ new-name' no longer fails on SunOS4.1.1U
|
||
* attempting to use mv to move a symlink onto itself no longer removes
|
||
the symlink
|
||
* `cp -R directory file' no longer removes `file'. now it fails and gives
|
||
a diagnostic
|
||
* The manual now warns that ls's --full-time format string is planned
|
||
to change in a future release.
|
||
* ls -l's time stamp format now depends on LC_TIME, not LC_MESSAGES,
|
||
as POSIX requires.
|
||
* ls -l now reports the year for files even slightly in the future, as
|
||
POSIX requires. This helps warn users about clock skew problems.
|
||
* `cp -d file symlink-to-some-other-file' no longer fails
|
||
* performance improvements for ls
|
||
[4.0.35]
|
||
* ln --backup=simple --suffix=SUFFIX once again uses SUFFIX
|
||
* install: Likewise.
|
||
[4.0.34]
|
||
* fix a bug (introduced in 4.0z) that made `chown 123:456 file' act like
|
||
`chown 123:123 file'. Other uses with a numeric group ID would cause
|
||
chown to fail when it shouldn't have.
|
||
* the chown and chgrp programs preserve set-uid and set-gid bits, even on
|
||
systems for which the chown function call resets those bits.
|
||
* `ls -L dangling-symlink' now fails (per POSIX) rather than printing the
|
||
link name
|
||
* dd no longer honors the just-added `B' suffix on skip= and seek= arguments.
|
||
* `mkdir no-such-dir/' no longer fails on NetBSD systems
|
||
[4.0.33]
|
||
* dd now accepts skip=nB and seek=nB, to advance past some number of bytes, n,
|
||
that need not be a multiple of the block size.
|
||
* dd (without conv=notrunc) now complains only when ftruncate fails on a
|
||
regular file, a directory, or a shared memory object -- not when it fails
|
||
to truncate other types of files, like /dev/fd0.
|
||
* chmod --changes (-c) once again issues diagnostics only for the files
|
||
with changed permissions
|
||
* mkdir now gives one diagnostic (rather than two) for certain failures
|
||
* mkdir portability fix for NetBSD
|
||
[4.0.32]
|
||
* touch now interprets a lone numeric argument of 8 or 10 digits as a file name,
|
||
rather than as a date/time in the obsolescent `MMDDhhmm[YY]' format.
|
||
* mkdir no longer sets the permissions of the final directory component
|
||
if it already exists (this bug, too, was introduced recently)
|
||
* ls's --full-time format string is now locale dependent
|
||
[4.0.31]
|
||
* mkdir: fix a bug introduced in 4.0.30 whereby `mkdir existing-dir' would
|
||
succeed. Now it fails, as it should (and used to).
|
||
[4.0.30]
|
||
* mkdir: fix a bug introduced in 4.0.28 whereby parent directories created
|
||
via `mkdir -p' would have permissions that did not account for the umask
|
||
[4.0.29]
|
||
* ls.c wouldn't compile on some systems: fix it
|
||
* `cp -R --parents dir1/ dir2' failed on NetBSD, due to a portability problem
|
||
[4.0.28]
|
||
* ls is much more efficient on systems (e.g., linux-2.4.*) that store file
|
||
type information in directory entries.
|
||
* shred now automatically determines the size of each block device argument
|
||
* ls's date/time format strings are now locale dependent
|
||
* mkdir, mknod, mkfifo, and chmod work better in conjunction with ACLs
|
||
* `cp --parents dir1/ dir2' no longer gets a failed assertion
|
||
* shred now determines the size of block devices like /dev/fd0
|
||
* `shred --exact file1 file2' now erases `file1', too
|
||
[4.0.27]
|
||
* install once again unlinks an existing destination before trying to open it
|
||
* mv no longer gets a failed assertion when moving a directory (specified with
|
||
a trailing slash) from one partition to another, and giving it a different
|
||
name at the destination.
|
||
* `cp --link -f src existing-dest' no longer fails (bug introduced in 4.0z)
|
||
* cp's new --remove-destination option now works with -R
|
||
[4.0z]
|
||
* `cp -p' once again preserves `special' permission bits (this bug was
|
||
introduced in 4.0y)
|
||
* mv's --force (-f) option now controls solely whether mv prompts (per POSIX)
|
||
* `cp -f' now first attempts to open an existing destination file, and only
|
||
if that fails does it resort to unlinking the file and retrying the open.
|
||
Before, it would unlink the file before trying to open it.
|
||
* cp accepts a new option, --remove-destination, that provides the old behavior
|
||
* cp's -f option no longer cancels the effect of --interactive (-i) (per POSIX)
|
||
* when ls sorts directory entries, it now honors the current locale settings
|
||
* dd's `skip=BLOCKS' operator once again works on systems with a buggy lseek
|
||
function (Linux, at least on SCSI tape devices)
|
||
* fix a typo in install-sh
|
||
[4.0y]
|
||
* cp now accepts the POSIX-mandated -H and -L options.
|
||
* cp -p and mv now try to preserve uid even if you're not root, as per POSIX.2.
|
||
This affects behavior only on hosts that let you give files away via chmod.
|
||
* du would fail when given `.' or `..' followed by other command line arguments
|
||
* Using cp's short-named `-P' option evokes the warning that the
|
||
meaning of `-P' will soon change. Use `--parents' instead.
|
||
* chgrp, chmod, and chown: when used with the --verbose option, might give an
|
||
invalid diagnostic (due to clobbered errno) when failing.
|
||
[4.0x]
|
||
* Fix cp so that `cp -r DIR1/ DIR2' works properly once again.
|
||
* New ls option --quoting-style=clocale acts like --quoting-style=locale,
|
||
except that it quotes "like this" by default instead of `like this'.
|
||
[4.0w]
|
||
* When `cp -pR' fails to copy a file, it now preserves permissions, owner,
|
||
and group of the containing directory.
|
||
[4.0v]
|
||
* df, du, and ls now round disk usage up and disk free space down
|
||
* df, du, ls: --block-size=N now works for values of N that are e.g.,
|
||
not a multiple of the file's block size
|
||
[4.0u]
|
||
* give proper diagnostic for mv usage error
|
||
* fix compile problem with lib/strnlen.c
|
||
[4.0t]
|
||
* `cp -d -u' no longer fails with certain existing destination symlinks
|
||
* rmdir and mkdir accept -v as synonym for --verbose
|
||
[4.0s]
|
||
* rm no longer segfaults on certain very deep hierarchies
|
||
* IMPORTANT SECURITY FIX: a running `rm -r' may no longer be subverted to
|
||
remove unintended directories
|
||
* cp can now remove unwritable files in interactive mode; contrary to how mv
|
||
works, cp's --interactive (-i) option does *not* cancel the effect of a
|
||
preceding --force (-f) option.
|
||
* all programs fail when printing --help or --version output to a full device
|
||
* install no longer performs chmod if chown fails (see ChangeLog for example)
|
||
[4.0r]
|
||
* `du dir/subdir1 dir/subdir2' no longer fails
|
||
* chown accepts new option: --from=CURRENT_OWNER:CURRENT_GROUP
|
||
* cp accepts new option: --strip-trailing-slashes
|
||
* install --directory (-d) may now be used to set special bits
|
||
e.g., `install -m a=rwx,o+t -d DIR' now honors the `o+t' part
|
||
* cp, mv, ln, install: document that while the --backup option takes an
|
||
optional argument, the -b option accepts none
|
||
* `ls -e' fails with a more useful diagnostic
|
||
* df produces better output for loop file system mount points
|
||
[4.0q]
|
||
* install -D bug is fixed
|
||
* chown now works properly when the specified login name contains a period
|
||
This is at the expense of always looking up the entire USER.GROUP string
|
||
as a login name first, and only then (upon failure) interpreting the `.'
|
||
as a separator and looking up `USER'. To avoid the extra getpwnam call,
|
||
always use the POSIX-mandated `:' character as the separator.
|
||
* `du some-other-dir' no longer fails if it can't open the current directory
|
||
* `mv DIR EXISTING-FILE' no longer removes EXISTING-FILE. Now it gets an error
|
||
as POSIX says it must.
|
||
* touch no longer hangs on fifos
|
||
[4.0p]
|
||
* various tools: quote multibyte characters correctly in diagnostics
|
||
* mv: portability fix for alpha
|
||
* dd: portability fix
|
||
* unified lib/: now that directory and most of the configuration framework
|
||
is common between fileutils, textutils, and sh-utils
|
||
[4.0o]
|
||
* Include lib/nanosleep.h.
|
||
[4.0n]
|
||
* cp, install, ln, and mv: when making backup files in verbose mode, these
|
||
commands now print the backup file name on the same line as the rest of the
|
||
information, e.g., `a -> b (backup: b.~13~)' rather than on a separate line
|
||
as all but ln used to do. ln didn't output the backup file name at all.
|
||
[4.0m]
|
||
* mv accepts new option: --strip-trailing-slashes (soon, many other
|
||
programs will, too)
|
||
* df no longer hangs when there is an inaccessible mount point unrelated to PATH
|
||
* rmdir --verbose no longer prints extra, bogus diagnosic upon failure
|
||
* fix df bug that made it print bogus values in the `Use%' column.
|
||
* touch -d once again parses dates with `hh:mm ZONE' time zone info.
|
||
[4.0l]
|
||
* ls -l honors a trailing slash on a symlink argument, per POSIX.
|
||
* shred no longer appears to infloop when asked to remove files in
|
||
unwritable directories
|
||
* `ls -ul' and `ls -uc' sort by name once again, as they should
|
||
[4.0k]
|
||
* mv may now be used to move a file onto a symlink to itself when that
|
||
symlink is on a separate partition. With fileutils-4.0j, it would
|
||
fail with a diagnostic saying they were the same file.
|
||
* touch would fail with the misleading diagnostic `no such file' when asked
|
||
to create a file in an unwritable directory. Now it says something like
|
||
`permission denied' or `read-only file system'.
|
||
[4.0j]
|
||
* mkdir may now be used to set special bits e.g., `mkdir -m o+t dir' works
|
||
* touch can now change the time(s) of a file you own even if you don't have
|
||
read or write access to it
|
||
* rm no longer dumps core after warning about directory cycles
|
||
* mv now refuses to move a file onto a symlink to itself when that symlink
|
||
is on a separate partition. Before, it would remove the file and leave
|
||
only the symlink.
|
||
* `install -d -g foo 1/2' now sets the `group' of the final component as well
|
||
as that of the leading one.
|
||
* df, du, and ls no longer divide by zero when an invalid block size is
|
||
specified through an environment variable
|
||
* under certain conditions, chgrp would fail to affect files referenced
|
||
through symlinks. Now it does.
|
||
* ln now makes hard links to symlinks on systems that support it.
|
||
* touch: no longer infloop on dangling symlinks
|
||
* cp, install, ln, mv: deprecate the --version-control option. Use --backup's
|
||
new optional argument instead. The old option still works, but now evokes a
|
||
warning.
|
||
* cp, install, ln, mv: the --backup option now accepts an optional argument
|
||
* cp, install, ln, mv: accept new option: --target-directory=DIR
|
||
* chgrp: accept new option, --dereference. --no-dereference is now the default.
|
||
* New ls option --quoting-style=locale acts like --quoting-style=c, except
|
||
with locale-specific quoting symbols (` and ' by default) instead of ".
|
||
* `df DIR' is less likely to hang due to bad NFS mounts
|
||
* As per POSIX.2, `df -P' now uses ceiling rather than rounding, and its
|
||
header now says `1024-blocks ... Capacity' instead of `1k-blocks ... Use%'.
|
||
[4.0i]
|
||
* `cp -f FILE FILE' and `mv -f FILE FILE' no longer remove FILE
|
||
* touch works once again (DST-wise) when certain `--date DATE-TIME'
|
||
values are specified.
|
||
* shred's -u option (short form of --remove) is now accepted
|
||
[4.0h]
|
||
* cp --one-file-system (-x) no longer crosses filesystem boundaries.
|
||
* touch can once again operate on directories
|
||
[4.0g]
|
||
* New large-file support for AIX and HP-UX, and for cross-compiles.
|
||
* shred's default options are now suitable for devices, not files, since
|
||
shred is more reliable on devices. shred now does not remove by default;
|
||
the old -p or --preserve option was inverted and renamed to -u or --remove.
|
||
* shred -u now attempts to truncate devices before removing them.
|
||
* shred -v no longer outputs carriage-returns; shred -vv has no extra effect;
|
||
shred -v now outputs to stderr.
|
||
* shred now tries to find the size of a non-regular file by seeking to its end.
|
||
* dd now opens the output file for *read* access only if `seek=' is used.
|
||
[4.0f]
|
||
* `ls --color' no longer segfaults
|
||
* dd works once again
|
||
[4.0e]
|
||
* shred --devices option renamed to -D so that -d, -i and -r can be
|
||
compatible with rm.
|
||
* shred -s/--size=N option added to specify the size of the object to be
|
||
shredded.
|
||
* `shred -' now shreds stdout rather than stdin. This is incompatible with -v.
|
||
* shred now does not need to read from its output file, so opens it O_WRONLY
|
||
* `ls -l' uses `+' to designate each file that has a custom ACL
|
||
* eliminate race condition that could make touch truncate a nonempty file
|
||
* No longer use *_unlocked I/O macros on systems (like solaris5.5.1) where
|
||
they're not declared, so selected executables (e.g., rm) that are linked
|
||
with shared libraries will once again run on solaris5.6 systems.
|
||
[4.0d (aka 4.1-b3)]
|
||
* ls recognizes solaris 2 `doors'
|
||
* new program: shred
|
||
* ln: Allow creation of a hard link to a dangling symlink
|
||
* cp, mv, install: --verbose now prints a message for each backup-related
|
||
renaming
|
||
* portability fixes for copy.c's code to detect move-directory-into-self
|
||
* upgrade to automake-1.3b
|
||
* upgrade to autoconf-2.13, and...
|
||
* remove some of the kludges in m4/*.m4 that permitted
|
||
[4.1-b2]
|
||
* concurrent `mkdir -p' processes no longer fail when creating the
|
||
same hierarchy
|
||
* argmatch.c has been fixed so that the unambiguous usage `ls --color=n'
|
||
no longer evokes an error.
|
||
* now, specifying an improper argument for an option that accepts enumerated
|
||
values evokes diagnostics like this:
|
||
$ src/touch --time=x file
|
||
src/touch: invalid argument `x' for `--time'
|
||
Valid arguments are:
|
||
- `atime', `access', `use'
|
||
- `mtime', `modify'
|
||
Try `src/touch --help' for more information.
|
||
[4.1-b1]
|
||
* ls --quoting-style=c prints correct octal escapes for certain nonprinting
|
||
characters in file names.
|
||
* fix `ls -R .' formatting bug that broke mktexlsr
|
||
* moving a directory into itself is properly diagnosed in more cases
|
||
* moving a directory containing hard-linked files now works
|
||
|
||
Changes in release 4.0:
|
||
[4.0-b7]
|
||
* rm -rf '' no longer gets a failed assertion on the Hurd
|
||
[4.0-b6]
|
||
* rm simply fails as it should (rather than segfaulting) for
|
||
`mkdir -m 0100 x; rm -rf x'
|
||
[4.0-b5]
|
||
* still *more* mktime.c portability tweaks
|
||
[4.0-b4]
|
||
* mktime.c portability tweak for headers with GNU libc 5.4.44.
|
||
[4.0-b3]
|
||
* mktime.c works around problems with Digital Unix 4.0A and 4.0D.
|
||
* mktime.c handles dates in the spring-forward gap the same way other
|
||
implementations do
|
||
* install accepts long option --suffix=SUFFIX
|
||
[4.0-b2]
|
||
* man/Makefile.maint framework tweaks
|
||
* add test for `mv -i' bug
|
||
[4.0-pre1]
|
||
* fix serious bug whereby `touch a b; echo n|mv -i a b' would remove b.
|
||
[3.16z]
|
||
* portability tweaks
|
||
* avoid `root `cp -a' from Netapp snapshot' corruption
|
||
[3.16y]
|
||
* `install -D' now works
|
||
* distribute maintainer Makefiles in man/
|
||
[3.16x]
|
||
* man pages are now automatically generated from a combination of --help
|
||
output and the contents of new (though mostly empty), man/*.x files.
|
||
[3.16w]
|
||
* touch now interprets `-t TIME-DATE' as POSIX specifies
|
||
* `ls EMPTY-DIR EMPTY-DIR' once again outputs the directory names
|
||
[3.16v]
|
||
* portability fixes
|
||
* `ls -R EMPTY-DIR' now outputs the name of the directory
|
||
[3.16u]
|
||
* mv now fails (as it should) upon attempt to move a directory into itself
|
||
* `cp -a --one-file-system' now copies any mount point directories it
|
||
encounters on the selected file system.
|
||
[3.16t]
|
||
* cp (with --update) and ls compare time stamps with subsecond resolution when
|
||
available (e.g., on systems with recent Linux kernels and on Solaris 2.6).
|
||
* install once again does the -m-specified chmod *after* running strip
|
||
(this fixes another bug introduced in 3.16o)
|
||
[3.16s]
|
||
* df accept a new option --local (-l)
|
||
* touch works around a system-specific bug so it now affects existing,
|
||
zero-length files on certain systems
|
||
* chown now works even on certain SVR3 systems where it used to fail
|
||
[3.16r]
|
||
* include gettext's m4 macros
|
||
* minor cp bug fixed
|
||
* non-portable cp tests removed
|
||
* --without-included-regex now means don't compile regex.c
|
||
* rx support removed
|
||
[3.16q]
|
||
* `df', `du', and `ls' now accept a new option --block-size=SIZE,
|
||
where SIZE can be a positive integer block size, followed by an
|
||
optional SI prefix (e.g. `k' for kilo, `M' for Mega), followed by an
|
||
optional `B' (for ``byte'', indicating powers of 1024, which is the
|
||
default) or `D' (for ``decimal byte'', indicating powers of 1000).
|
||
SIZE can also be `human-readable' (for -h or --human-readable
|
||
behavior) or `si' (for -H or --si behavior).
|
||
* These suffixes can also be used by `dd'; e.g. `dd bs=1MB' is equivalent
|
||
to `dd bs=1048576'.
|
||
* The default block size for the `df' command is now obtained from the
|
||
DF_BLOCK_SIZE environment variable or, if that is not set, from BLOCK_SIZE.
|
||
Similarly for `du' and `ls'.
|
||
* The output columns of `df' have been adjusted slightly to accommodate
|
||
larger filesystems.
|
||
* fix gettext-related link failures seen when configuring certain ways
|
||
[3.16p]
|
||
* fix install bug introduced in 3.16o
|
||
* build/test changes only
|
||
[3.16o]
|
||
* chown accepts new option, --dereference. --no-dereference is now the default.
|
||
* install now shares core copying code with mv and cp
|
||
* mv (between distinct filesystems) now uses more of the core copying code
|
||
* fixed a bug or two in mv
|
||
* df once again displays negative numbers when that's what's returned
|
||
by get_fs_usage
|
||
[3.16n]
|
||
* `mv dir dir' once again does *not* remove dir/
|
||
* ls accepts new options:
|
||
--indicator-style=none (no indicators, the default)
|
||
--indicator-style=classify (all indicators)
|
||
(equivalent to -F or --classify)
|
||
--indicator-style=file-type (file type indicators)
|
||
(equivalent to -p or --file-type)
|
||
|
||
--quoting-style=literal (do not quote output)
|
||
--quoting-style=shell (minimally quote output for the shell)
|
||
--quoting-style=shell-always (always quote output with '' for the shell)
|
||
--quoting-style=c (quote output as for a C-language string)
|
||
(equivalent to -Q or --quote-name)
|
||
--quoting-style=escape (like c but omit enclosing "")
|
||
(equivalent to -b or --escape)
|
||
|
||
--show-control-chars is the opposite of --hide-control-chars
|
||
This option can be useful if output is to a terminal,
|
||
to override the default beahvior of hiding control characters.
|
||
|
||
* The QUOTING_STYLE environment variable can now be used to specify the
|
||
default value for ls's --quoting-style option. If not specified,
|
||
the default quoting style is 'literal', but this default may change to
|
||
'shell' in a future version of this package.
|
||
* ls's quoting style now affects operands in diagnostics, too.
|
||
* ls's --dired option now outputs the quoting style
|
||
using the format of the new --quoting-style option.
|
||
* ls's -e or --quote-shell option (introduced in 3.16j) has been removed;
|
||
use --quoting-style=shell to get its functionality.
|
||
[3.16m]
|
||
* mv can move (and doesn't read) special files
|
||
* remove maintainer mode
|
||
[3.16l]
|
||
* mv can finally move non-regular files between partitions
|
||
[3.16k]
|
||
* install accepts new option, -D
|
||
[3.16j]
|
||
* du accepts new options, --exclude=PAT and --exclude-from=FILE (-X FILE)
|
||
* ls now quotes file names for the shell by default, if they contain
|
||
characters that need quoting. Use -N to get the old default behavior.
|
||
The new behavior is also enabled by the new option -e or --quote-shell.
|
||
* ln --backup is now consistent with cp and mv in that --force is no longer
|
||
required when the destination is an existing non-directory.
|
||
* install accepts new option, --verbose (-v)
|
||
* mkdir -p is a lot faster when creating very deep directories on some systems
|
||
* rm -i no longer exits with status indicating failure solely because the
|
||
user declines to remove a file
|
||
* rm -r is a lot faster on some systems when removing deep hierarchies
|
||
* chgrp, chmod, and chown no longer give contradictory output when --verbose
|
||
is used and an operation fails
|
||
* ls's multicolumn option now uses variable width columns to conserve
|
||
vertical space
|
||
* install accepts new option, --preserve-timestamps
|
||
* du --megabytes --total now shows total in megabytes
|
||
* ls accepts new option, -h or --human-readable
|
||
* df, du, and ls now accept new option, -H or --si, for powers of 1000 not 1024
|
||
* df, du, and ls now consistently round to nearest, with ties going to even
|
||
* df, du, and ls now use `k' instead of `K' for `kilo',
|
||
and support larger abbreviations T(era), P(eta), E(xa), Z(etta), Y(otta)
|
||
* touch -d DATE now works on Unicos
|
||
* du accepts new option --max-depth=N
|
||
* rmdir accepts new options: --ignore-fail-on-non-empty and --verbose
|
||
* on most hosts df, du, and ls now overflow at 2**64 bytes, not 2**31 bytes
|
||
* all programs now work on large files on LFS systems like Solaris 2.6 and
|
||
Linux with the pre-2.1 development version of GNU libc.
|
||
* df now works with OpenBSD 2.1 beta
|
||
* cp -d FILE SYMLINK-TO-FILE doesn't erase FILE. Now it gives an error.
|
||
|
||
Changes in release 3.16:
|
||
* du --megabytes (-m) works
|
||
* ls -l works even on systems with non-POSIX strftime in their C library
|
||
|
||
Changes in release 3.15:
|
||
* touch --date=DATE bug (due to broken getdate.y) has been fixed
|
||
* ls -l no longer misformats the date when run in a locale for which the
|
||
locale's abbreviated week-day name (strftime's %a format) is shorter or
|
||
longer than the `normal' three bytes (with LANG=de it's a two-byte string).
|
||
* Using --program-prefix no longer applies the prefix twice
|
||
* ls --color properly restores color attributes upon completion when the
|
||
normal (`no') color attribute is not the default color.
|
||
* with ls -s --color, the `total' and size of the first file are printed
|
||
* ls --color stats symlinks and distinguishes between regular symlinks
|
||
and orphan ones.
|
||
* cp --preserve preserves owner and group of symlinks on Linux when run
|
||
with EUID == 0
|
||
* dircolors no longer accepts --print-data-base (alternate spelling of
|
||
--print-database)
|
||
|
||
Changes in release 3.14:
|
||
* ls --color highlights based on suffix rules only for regular files
|
||
* touch --date=DATE accepts dates like those in an RCS log listing, e.g.,
|
||
`1992/11/01 05:44:34'.
|
||
* install SRC DST no longer rejects non-regular, non-directory SRC
|
||
* df accepts -F as a synonym for -t for compatibility with Solaris
|
||
* cp -i /dev/null existing-file now prompts before overwriting the target
|
||
* ls --color highlights orphaned symlinks text on terminals that support it
|
||
* ls -l honors current locale with respect to abbreviated month names (and,
|
||
with --full-time day names) on systems with a locale-supporting strftime
|
||
function, e.g., ones based on recent versions of the GNU C library
|
||
* ls -l recognizes Cray's migrated dmf files.
|
||
* chgrp no longer aborts when given a group number larger than INT_MAX
|
||
* chgrp now fails when run by root with an unrecognized group name
|
||
* when possible, cp -p preserves owner/group even on symlinks in case
|
||
they're in a directory that has the sticky-bit set.
|
||
* cp --recursive --parents SRC DEST works when SRC is an absolute file name.
|
||
|
||
Changes in release 3.13:
|
||
* ls properly determines window size on SunOS and Solaris systems
|
||
* ls accepts new option --color[=WHEN] where WHEN is `always', `never',
|
||
or `auto'. --color=never is the default. --color is equivalent
|
||
to --color=always.
|
||
* new program: dircolors
|
||
* ls allows 0 as argument to --tabsize (-T) option. Using --tabsize=0
|
||
inhibits the use of TAB characters for separating columns.
|
||
* you can create a backup of FILE with cp --force --backup FILE FILE. Before,
|
||
that command failed saying that ``FILE' and `FILE' are the same file'.
|
||
* uses automake-generated Makefile templates
|
||
* chown and chgrp accept new option --no-dereference (-h)
|
||
* ln -f FILE FILE fails with a diagnostic rather than silently removing FILE
|
||
* when building on systems that have getopt_long (most GNU-oriented ones),
|
||
the system-provided function will be used -- so executables may be a
|
||
little smaller
|
||
* cp -p, and mv modify owner and/or group of symlinks on systems
|
||
(like Solaris) that provide the lchown system call.
|
||
* df no longer invokes the sync system call by default. You can use the
|
||
--sync option to make df invoke sync before getting file system sizes.
|
||
* internationalized diagnostic messages
|
||
* mkdir accepts new option: --verbose
|
||
* `cp file D/' uses the full file name `D/file' instead of `D//file'.
|
||
* cp --backup a~ a fails instead of silently destroying the source file
|
||
* df and du have new options --human-readable (-h) and --megabytes (-m).
|
||
* install now honors --backup (-b), --suffix=SUFFIX (-S SUFFIX), and
|
||
--version-control=WORD (-V WORD) options just as cp, ln, and mv do.
|
||
* ln --verbose output is less prone to misinterpretation
|
||
* ls -o works like -lG; for compatibility with other versions of ls
|
||
* cp has a new option to control creation of sparse files:
|
||
--sparse={auto,always,never}. --sparse=auto is the default.
|
||
* rm -rf '' behaves properly on SunOS 4 systems
|
||
* touch: rename long option name, --file, to --reference.
|
||
`touch --file' will continue to work a little longer.
|
||
* df fails if the same file system type is both selected and excluded.
|
||
* df works around SunOS statfs brokenness wrt filesystems larger than 2GB
|
||
* df better handles inconsistent mtab entries
|
||
* `ls -lDR dir dir2' works
|
||
* `ls -c' does what it's supposed to
|
||
* all programs include program name in --version output
|
||
* `ls --quote-name' works
|
||
* mv properly determines whether src and dest are the same file
|
||
Before, it could (though with very low probability) fail to do the move,
|
||
reporting that distinct source and destination are the same file.
|
||
* du --dereference (-L) works with directory symlinks
|
||
* du works on SunOS 4 systems even when accounting is enabled
|
||
* many programs that convert strings to integers now use strtol or strtoul
|
||
and detect overflow
|
||
|
||
User-visible changes in release 3.12:
|
||
* None.
|
||
User-visible changes in release 3.11:
|
||
* None.
|
||
User-visible changes in release 3.10:
|
||
* mkdir -p now ignores arguments that are existing directories. Before,
|
||
(contrary to POSIX spec) it would attempt to change ownership and/or
|
||
protections of existing directories listed on the command line. And
|
||
it would fail when such a directory was owned by another user.
|
||
* Fix bug in cp that made the commands `mkdir dir; touch foo; cp -P foo dir'
|
||
incorrectly change the permissions on directory, dir.
|
||
* df accepts a new option, --no-sync, that inhibits the default invocation
|
||
of the sync system call.
|
||
* ls accepts a new option, --dired, that makes emacs' dired mode more efficient
|
||
* skeletal texinfo documentation (mainly just the `invoking' nodes)
|
||
* ln accepts a new option: --no-dereference (-n). With this option,
|
||
if the destination command line argument is a symlink to a directory,
|
||
use that as the destination instead of the file in the directory.
|
||
* `ln -i no-such-file existing-file' gives a diagnostic and fails.
|
||
Before, if you responded `yes' to the prompt it would both remove
|
||
`existing-file' and fail to make a link.
|
||
* du no longer requires read access to all of the directory components
|
||
of the current working directory on systems with fchdir.
|
||
* touch -d 'date' is no longer off by one hour.
|
||
* New program: sync.
|
||
* Fix bug in cp that made the commands `ln -s . s; cp -rd s r' incorrectly
|
||
create `r' as a symlink instead of as a regular file.
|
||
* du's -S and -c options now work when used together.
|
||
Before, the grand total was always reported to be zero.
|
||
|
||
Major changes in release 3.9:
|
||
* --help gives a one-line description of each option and shows the
|
||
correspondence between short and long-named options.
|
||
* work around systems with BROKEN_STAT_MACROS
|
||
* work around problem where $(srcdir)/config.h was used instead of
|
||
../config.h -- this happened only when building in a subdirectory
|
||
and when config.h remained in $(srcdir) from a previous ./configure.
|
||
* GNU chmod treats symlinks the same way other vendor's versions do.
|
||
Now symlinks listed on the command line are processed (they were
|
||
ignored before); the permissions of the dereferenced files are
|
||
changed. Symlinks encountered in recursive traversals are still
|
||
ignored. This makes GNU chmod act more like e.g. Sun's.
|
||
* configure uses config.h, so DEFS won't exceed preprocessor limits of
|
||
some compilers on the number of symbols defined via -D.
|
||
* ls and cp can handle mount points on more systems
|
||
* cp, mkdir, and rmdir long option --path renamed to --parents; --path
|
||
will still work for a while
|
||
* cp, ln, and mv convert `cp A B/' to cp A B/A when A is not a directory.
|
||
This change affects only the two-argument form of the commands. It makes
|
||
such commands fail when the target has a trailing slash but is not a
|
||
directory or symlink to a directory and the source is not a directory.
|
||
They used to succeed, ignoring the implicitly contradictory trailing slash.
|
||
|
||
Major changes in release 3.8:
|
||
* install isn't as likely to produce spurious errors
|
||
* avoid redundant compilations for `dir' and `vdir';
|
||
* configure properly defines STAT_STATFS2_BSIZE on a Pyramid MIServer
|
||
running OSx 5.1
|
||
|
||
Major changes in release 3.7:
|
||
* none
|
||
Major changes in release 3.6:
|
||
* `ln -s dir_pathname .' works when the pathname has a trailing slash
|
||
* with the --version option programs print the version and exit immediately
|
||
* GNU ls -f works like Unix ls -f
|
||
* mktime replacement works
|
||
|
||
Major changes in release 3.5:
|
||
* adds support for DEC Alpha under OSF/1
|
||
* configuring with gcc uses CFLAGS='-g -O' by default
|
||
* all programs accept --help and --version options
|
||
* long-named options must be introduced with `--'; `+' is no longer
|
||
accepted since it is incompatible with the POSIX.2 standard
|
||
* chmod accepts long-named options
|
||
* dd conv=unblock doesn't hang
|
||
* new df option --exclude=fstype
|
||
* new ls option --full-time
|
||
|
||
Major changes in release 3.4:
|
||
* cp -p and mv preserve setuid and setgid bits
|
||
* chown works on systems where sizeof(uid_t) != sizeof(int)
|
||
or sizeof(uid) != sizeof(gid)
|
||
* catch errors from spurious slashes at ends of arguments
|
||
|
||
Major changes in release 3.3:
|
||
* df sped up by not calling sync for every filesystem
|
||
* df ported to AIX (RS/6000 and PS/2), and SVR2 port fixed
|
||
* df -i now also prints the total number of inodes per filesystem
|
||
* ls sped up by not reading symlink contents unnecessarily
|
||
* du doesn't die on POSIX systems when the root filesystem is NFS mounted
|
||
* cp and mv report chown Permission denied errors when run by root
|
||
|
||
========================================================================
|
||
|
||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||
2001, 2002, 2003 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.2 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 ``GNU Free
|
||
Documentation License'' file as part of this distribution.
|