1 Changes in release 3.17:
3 * install accepts new option, -D
5 * du accepts new options, --exclude=PAT and --exclude-from=FILE (-X FILE)
6 * ls now quotes file names for the shell by default, if they contain
7 characters that need quoting. Use -N to get the old default behavior.
8 The new behavior is also enabled by the new option -e or --quote-shell.
9 * ln --backup is now consistent with cp and mv in that --force is no longer
10 required when the destination is an existing non-directory.
11 * install accepts new option, --verbose (-v)
12 * mkdir -p is a lot faster when creating very deep directories on some systems
13 * rm -i no longer exits with status indicating failure solely because the
14 user declines to remove a file
15 * rm -r is a lot faster on some systems when removing deep hierarchies
16 * chgrp, chmod, and chown no longer give contradictory output when --verbose
17 is used and an operation fails
18 * ls's multicolumn option now uses variable width columns to conserve
20 * install accepts new option, --preserve-timestamps
21 * du --megabytes --total now shows total in megabytes
22 * ls accepts new option, -h or --human-readable
23 * df, du, and ls now accept new option, -H or --si, for powers of 1000 not 1024
24 * df, du, and ls now consistently round to nearest, with ties going to even
25 * df, du, and ls now use `k' instead of `K' for `kilo',
26 and support larger abbreviations T(era), P(eta), E(xa), Z(etta), Y(otta)
27 * touch -d DATE now works on Unicos
28 * du accepts new option --max-depth=N
29 * rmdir accepts new options: --ignore-fail-on-non-empty and --verbose
30 * on most hosts df, du, and ls now overflow at 2**64 bytes, not 2**31 bytes
31 * all programs now work on large files on LFS systems like Solaris 2.6 and
32 Linux with the pre-2.1 development version of GNU libc.
33 * df now works with OpenBSD 2.1 beta
34 * cp -d FILE SYMLINK-TO-FILE doesn't erase FILE. Now it gives an error.
36 Changes in release 3.16:
37 * du --megabytes (-m) works
38 * ls -l works even on systems with non-POSIX strftime in their C library
40 Changes in release 3.15:
41 * touch --date=DATE bug (due to broken getdate.y) has been fixed
42 * ls -l no longer misformats the date when run in a locale for which the
43 locale's abbreviated week-day name (strftime's %a format) is shorter or
44 longer than the `normal' three bytes (with LANG=de it's a two-byte string).
45 * Using --program-prefix no longer applies the prefix twice
46 * ls --color properly restores color attributes upon completion when the
47 normal (`no') color attribute is not the default color.
48 * with ls -s --color, the `total' and size of the first file are printed
49 * ls --color stats symlinks and distinguishes between regular symlinks
51 * cp --preserve preserves owner and group of symlinks on Linux when run
53 * dircolors no longer accepts --print-data-base (alternate spelling of
56 Changes in release 3.14:
57 * ls --color highlights based on suffix rules only for regular files
58 * touch --date=DATE accepts dates like those in an RCS log listing, e.g.,
59 `1992/11/01 05:44:34'.
60 * install SRC DST no longer rejects non-regular, non-directory SRC
61 * df accepts -F as a synonym for -t for compatibility with Solaris
62 * cp -i /dev/null existing-file now prompts before overwriting the target
63 * ls --color highlights orphaned symlinks text on terminals that support it
64 * ls -l honors current locale with respect to abbreviated month names (and,
65 with --full-time day names) on systems with a locale-supporting strftime
66 function, e.g., ones based on recent versions of the GNU C library
67 * ls -l recognizes Cray's migrated dmf files.
68 * chgrp no longer aborts when given a group number larger than INT_MAX
69 * chgrp now fails when run by root with an unrecognized group name
70 * when possible, cp -p preserves owner/group even on symlinks in case
71 they're in a directory that has the sticky-bit set.
72 * cp --recursive --parents SRC DEST works when SRC is an absolute file name.
74 Changes in release 3.13:
75 * ls properly determines window size on SunOS and Solaris systems
76 * ls accepts new option --color[=WHEN] where WHEN is `always', `never',
77 or `auto'. --color=never is the default. --color is equivalent
79 * new program: dircolors
80 * ls allows 0 as argument to --tabsize (-T) option. Using --tabsize=0
81 inhibits the use of TAB characters for separating columns.
82 * you can create a backup of FILE with cp --force --backup FILE FILE. Before,
83 that command failed saying that ``FILE' and `FILE' are the same file'.
84 * uses automake-generated Makefile templates
85 * chown and chgrp accept new option --no-dereference (-h)
86 * ln -f FILE FILE fails with a diagnostic rather than silently removing FILE
87 * when building on systems that have getopt_long (most GNU-oriented ones),
88 the system-provided function will be used -- so executables may be a
90 * cp -p, and mv modify owner and/or group of symlinks on systems
91 (like Solaris) that provide the lchown system call.
92 * df no longer invokes the sync system call by default. You can use the
93 --sync option to make df invoke sync before getting file system sizes.
94 * internationalized diagnostic messages
95 * mkdir accepts new option: --verbose
96 * `cp file D/' uses the full file name `D/file' instead of `D//file'.
97 * cp --backup a~ a fails instead of silently destroying the source file
98 * df and du have new options --human-readable (-h) and --megabytes (-m).
99 * install now honors --backup (-b), --suffix=SUFFIX (-S SUFFIX), and
100 --version-control=WORD (-V WORD) options just as cp, ln, and mv do.
101 * ln --verbose output is less prone to misinterpretation
102 * ls -o works like -lG; for compatibility with other versions of ls
103 * cp has a new option to control creation of sparse files:
104 --sparse={auto,always,never}. --sparse=auto is the default.
105 * rm -rf '' behaves properly on SunOS 4 systems
106 * touch: rename long option name, --file, to --reference.
107 `touch --file' will continue to work a little longer.
108 * df fails if the same file system type is both selected and excluded.
109 * df works around SunOS statfs brokenness wrt filesystems larger than 2GB
110 * df better handles inconsistent mtab entries
111 * `ls -lDR dir dir2' works
112 * `ls -c' does what it's supposed to
113 * all programs include program name in --version output
114 * `ls --quote-name' works
115 * mv properly determines whether src and dest are the same file
116 Before, it could (though with very low probability) fail to do the move,
117 reporting that distinct source and destination are the same file.
118 * du --dereference (-L) works with directory symlinks
119 * du works on SunOS 4 systems even when accounting is enabled
120 * many programs that convert strings to integers now use strtol or strtoul
123 User-visible changes in release 3.12:
125 User-visible changes in release 3.11:
127 User-visible changes in release 3.10:
128 * mkdir -p now ignores arguments that are existing directories. Before,
129 (contrary to POSIX spec) it would attempt to change ownership and/or
130 protections of existing directories listed on the command line. And
131 it would fail when such a directory was owned by another user.
132 * Fix bug in cp that made the commands `mkdir dir; touch foo; cp -P foo dir'
133 incorrectly change the permissions on directory, dir.
134 * df accepts a new option, --no-sync, that inhibits the default invocation
135 of the sync system call.
136 * ls accepts a new option, --dired, that makes emacs' dired mode more efficient
137 * skeletal texinfo documentation (mainly just the `invoking' nodes)
138 * ln accepts a new option: --no-dereference (-n). With this option,
139 if the destination command line argument is a symlink to a directory,
140 use that as the destination instead of the file in the directory.
141 * `ln -i no-such-file existing-file' gives a diagnostic and fails.
142 Before, if you responded `yes' to the prompt it would both remove
143 `existing-file' and fail to make a link.
144 * du no longer requires read access to all of the directory components
145 of the current working directory on systems with fchdir.
146 * touch -d 'date' is no longer off by one hour.
148 * Fix bug in cp that made the commands `ln -s . s; cp -rd s r' incorrectly
149 create `r' as a symlink instead of as a regular file.
150 * du's -S and -c options now work when used together.
151 Before, the grand total was always reported to be zero.
153 Major changes in release 3.9:
154 * --help gives a one-line description of each option and shows the
155 correspondence between short and long-named options.
156 * work around systems with BROKEN_STAT_MACROS
157 * work around problem where $(srcdir)/config.h was used instead of
158 ../config.h -- this happened only when building in a subdirectory
159 and when config.h remained in $(srcdir) from a previous ./configure.
160 * GNU chmod treats symlinks the same way other vendor's versions do.
161 Now symlinks listed on the command line are processed (they were
162 ignored before); the permissions of the dereferenced files are
163 changed. Symlinks encountered in recursive traversals are still
164 ignored. This makes GNU chmod act more like e.g. Sun's.
165 * configure uses config.h, so DEFS won't exceed preprocessor limits of
166 some compilers on the number of symbols defined via -D.
167 * ls and cp can handle mount points on more systems
168 * cp, mkdir, and rmdir long option --path renamed to --parents; --path
169 will still work for a while
170 * cp, ln, and mv convert `cp A B/' to cp A B/A when A is not a directory.
171 This change affects only the two-argument form of the commands. It makes
172 such commands fail when the target has a trailing slash but is not a
173 directory or symlink to a directory and the source is not a directory.
174 They used to succeed, ignoring the implicitly contradictory trailing slash.
176 Major changes in release 3.8:
177 * install isn't as likely to produce spurious errors
178 * avoid redundant compilations for `dir' and `vdir';
179 * configure properly defines STAT_STATFS2_BSIZE on a Pyramid MIServer
182 Major changes in release 3.7:
184 Major changes in release 3.6:
185 * `ln -s dir_pathname .' works when the pathname has a trailing slash
186 * with the --version option programs print the version and exit immediately
187 * GNU ls -f works like Unix ls -f
188 * mktime replacement works
190 Major changes in release 3.5:
191 * adds support for DEC Alpha under OSF/1
192 * configuring with gcc uses CFLAGS='-g -O' by default
193 * all programs accept --help and --version options
194 * long-named options must be introduced with `--'; `+' is no longer
195 accepted since it is incompatible with the POSIX.2 standard
196 * chmod accepts long-named options
197 * dd conv=unblock doesn't hang
198 * new df option --exclude=fstype
199 * new ls option --full-time
201 Major changes in release 3.4:
202 * cp -p and mv preserve setuid and setgid bits
203 * chown works on systems where sizeof(uid_t) != sizeof(int)
204 or sizeof(uid) != sizeof(gid)
205 * catch errors from spurious slashes at ends of arguments
207 Major changes in release 3.3:
208 * df sped up by not calling sync for every filesystem
209 * df ported to AIX (RS/6000 and PS/2), and SVR2 port fixed
210 * df -i now also prints the total number of inodes per filesystem
211 * ls sped up by not reading symlink contents unnecessarily
212 * du doesn't die on POSIX systems when the root filesystem is NFS mounted
213 * cp and mv report chown Permission denied errors when run by root