User-visible changes in release 3.10: * 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