| 1 | GNU coreutils NEWS -*- outline -*-
|
|---|
| 2 |
|
|---|
| 3 | * Major changes in release 5.94 (2006-02-13) [stable]
|
|---|
| 4 |
|
|---|
| 5 | ** Feature changes
|
|---|
| 6 |
|
|---|
| 7 | df now considers "none" and "proc" file systems to be dummies and
|
|---|
| 8 | therefore does not normally display them. Also, inaccessible file
|
|---|
| 9 | systems (which can be caused by shadowed mount points or by chrooted
|
|---|
| 10 | bind mounts) are now dummies, too.
|
|---|
| 11 |
|
|---|
| 12 | stat's --format=FMT option now works the way it did before 5.3.0:
|
|---|
| 13 | FMT is automatically newline terminated. The first stable release
|
|---|
| 14 | containing this change was 5.92.
|
|---|
| 15 |
|
|---|
| 16 | stat accepts the new option --printf=PFMT, where PFMT is *not* automatically
|
|---|
| 17 | newline terminated. Backslash escapes in PFMT *are* interpreted.
|
|---|
| 18 |
|
|---|
| 19 | stat: backslash escapes are interpreted in a format string specified
|
|---|
| 20 | via --printf=FMT, but not one specified via --format=FMT. That includes
|
|---|
| 21 | octal (\ooo, at most three octal digits), hexadecimal (\xhh, one or
|
|---|
| 22 | two hex digits), and the standard sequences (\a, \b, \f, \n, \r, \t,
|
|---|
| 23 | \v, \", \\).
|
|---|
| 24 |
|
|---|
| 25 | ** Bug fixes
|
|---|
| 26 |
|
|---|
| 27 | When `cp -RL' encounters the same directory more than once in the
|
|---|
| 28 | hierarchy beneath a single command-line argument, it no longer confuses
|
|---|
| 29 | them with hard-linked directories.
|
|---|
| 30 |
|
|---|
| 31 | fts-using tools (chmod, chown, chgrp, du) no longer fail due to
|
|---|
| 32 | a double-free bug -- it could be triggered by making a directory
|
|---|
| 33 | inaccessible while e.g., du is traversing the hierarchy under it.
|
|---|
| 34 |
|
|---|
| 35 | fts-using tools (chmod, chown, chgrp, du) no longer misinterpret
|
|---|
| 36 | a very long symlink chain as a dangling symlink. Before, such a
|
|---|
| 37 | misinterpretation would cause these tools not to diagnose an ELOOP error.
|
|---|
| 38 |
|
|---|
| 39 | sort would fail for large inputs (~50MB) on systems with a buggy
|
|---|
| 40 | mkstemp function. sort and tac now use the replacement mkstemp
|
|---|
| 41 | function, and hence are no longer subject to limitations (of 26 or 32,
|
|---|
| 42 | on the maximum number of files from a given template) on HP-UX 10.20,
|
|---|
| 43 | SunOS 4.1.4, Solaris 2.5.1 and OSF1/Tru64 V4.0F&V5.1.
|
|---|
| 44 |
|
|---|
| 45 | tail -f once again works on a file with the append-only
|
|---|
| 46 | attribute (affects at least Linux ext2, ext3, xfs file systems)
|
|---|
| 47 |
|
|---|
| 48 |
|
|---|
| 49 | * Major changes in release 5.93 (2005-11-06) [stable]
|
|---|
| 50 |
|
|---|
| 51 | ** Bug fixes
|
|---|
| 52 |
|
|---|
| 53 | dircolors no longer segfaults upon an attempt to use the new
|
|---|
| 54 | STICKY_OTHER_WRITABLE (OWT) attribute
|
|---|
| 55 |
|
|---|
| 56 | du no longer overflows a counter when processing a file larger than
|
|---|
| 57 | 2^31-1 on some 32-bit systems (at least some AIX 5.1 configurations).
|
|---|
| 58 |
|
|---|
| 59 | md5sum once again defaults to using the ` ' non-binary marker
|
|---|
| 60 | (rather than the `*' binary marker) by default on Unix-like systems.
|
|---|
| 61 |
|
|---|
| 62 | mkdir -p and install -d no longer exit nonzero when asked to create
|
|---|
| 63 | a directory like `nonexistent/.'
|
|---|
| 64 |
|
|---|
| 65 | rm emits a better diagnostic when (without -r) it fails to remove
|
|---|
| 66 | a directory on e.g., Solaris 9/10 systems.
|
|---|
| 67 |
|
|---|
| 68 | tac now works when stdin is a tty, even on non-Linux systems
|
|---|
| 69 |
|
|---|
| 70 | "tail -c 2 FILE" and "touch 0101000000" now operate as POSIX
|
|---|
| 71 | 1003.1-2001 requires, even when coreutils is conforming to older
|
|---|
| 72 | POSIX standards, as the newly-required behavior is upward-compatible
|
|---|
| 73 | with the old.
|
|---|
| 74 |
|
|---|
| 75 | ** Build-related bug fixes
|
|---|
| 76 |
|
|---|
| 77 | installing .mo files would fail
|
|---|
| 78 |
|
|---|
| 79 |
|
|---|
| 80 | * Major changes in release 5.92 (2005-10-22) [stable]
|
|---|
| 81 |
|
|---|
| 82 | ** Bug fixes
|
|---|
| 83 |
|
|---|
| 84 | chmod now diagnoses an invalid mode string starting with an octal digit
|
|---|
| 85 |
|
|---|
| 86 | dircolors now properly quotes single-quote characters
|
|---|
| 87 |
|
|---|
| 88 | * Major changes in release 5.91 (2005-10-17) [stable candidate]
|
|---|
| 89 |
|
|---|
| 90 | ** Bug fixes
|
|---|
| 91 |
|
|---|
| 92 | "mkdir -p /a/b/c" no longer fails merely because a leading prefix
|
|---|
| 93 | directory (e.g., /a or /a/b) exists on a read-only file system.
|
|---|
| 94 |
|
|---|
| 95 | ** Removed options
|
|---|
| 96 |
|
|---|
| 97 | tail's --allow-missing option has been removed. Use --retry instead.
|
|---|
| 98 |
|
|---|
| 99 | stat's --link and -l options have been removed.
|
|---|
| 100 | Use --dereference (-L) instead.
|
|---|
| 101 |
|
|---|
| 102 | ** Deprecated options
|
|---|
| 103 |
|
|---|
| 104 | Using ls, du, or df with the --kilobytes option now evokes a warning
|
|---|
| 105 | that the long-named option is deprecated. Use `-k' instead.
|
|---|
| 106 |
|
|---|
| 107 | du's long-named --megabytes option now evokes a warning.
|
|---|
| 108 | Use -m instead.
|
|---|
| 109 |
|
|---|
| 110 |
|
|---|
| 111 | * Major changes in release 5.90 (2005-09-29) [unstable]
|
|---|
| 112 |
|
|---|
| 113 | ** Bring back support for `head -NUM', `tail -NUM', etc. even when
|
|---|
| 114 | conforming to POSIX 1003.1-2001. The following changes apply only
|
|---|
| 115 | when conforming to POSIX 1003.1-2001; there is no effect when
|
|---|
| 116 | conforming to older POSIX versions.
|
|---|
| 117 |
|
|---|
| 118 | The following usages now behave just as when conforming to older POSIX:
|
|---|
| 119 |
|
|---|
| 120 | date -I
|
|---|
| 121 | expand -TAB1[,TAB2,...]
|
|---|
| 122 | fold -WIDTH
|
|---|
| 123 | head -NUM
|
|---|
| 124 | join -j FIELD
|
|---|
| 125 | join -j1 FIELD
|
|---|
| 126 | join -j2 FIELD
|
|---|
| 127 | join -o FIELD_NAME1 FIELD_NAME2...
|
|---|
| 128 | nice -NUM
|
|---|
| 129 | od -w
|
|---|
| 130 | pr -S
|
|---|
| 131 | split -NUM
|
|---|
| 132 | tail -[NUM][bcl][f] [FILE]
|
|---|
| 133 |
|
|---|
| 134 | The following usages no longer work, due to the above changes:
|
|---|
| 135 |
|
|---|
| 136 | date -I TIMESPEC (use `date -ITIMESPEC' instead)
|
|---|
| 137 | od -w WIDTH (use `od -wWIDTH' instead)
|
|---|
| 138 | pr -S STRING (use `pr -SSTRING' instead)
|
|---|
| 139 |
|
|---|
| 140 | A few usages still have behavior that depends on which POSIX standard is
|
|---|
| 141 | being conformed to, and portable applications should beware these
|
|---|
| 142 | problematic usages. These include:
|
|---|
| 143 |
|
|---|
| 144 | Problematic Standard-conforming replacement, depending on
|
|---|
| 145 | usage whether you prefer the behavior of:
|
|---|
| 146 | POSIX 1003.2-1992 POSIX 1003.1-2001
|
|---|
| 147 | sort +4 sort -k 5 sort ./+4
|
|---|
| 148 | tail +4 tail -n +4 tail ./+4
|
|---|
| 149 | tail - f tail f [see (*) below]
|
|---|
| 150 | tail -c 4 tail -c 10 ./4 tail -c4
|
|---|
| 151 | touch 12312359 f touch -t 12312359 f touch ./12312359 f
|
|---|
| 152 | uniq +4 uniq -s 4 uniq ./+4
|
|---|
| 153 |
|
|---|
| 154 | (*) "tail - f" does not conform to POSIX 1003.1-2001; to read
|
|---|
| 155 | standard input and then "f", use the command "tail -- - f".
|
|---|
| 156 |
|
|---|
| 157 | These changes are in response to decisions taken in the January 2005
|
|---|
| 158 | Austin Group standardization meeting. For more details, please see
|
|---|
| 159 | "Utility Syntax Guidelines" in the Minutes of the January 2005
|
|---|
| 160 | Meeting <http://www.opengroup.org/austin/docs/austin_239.html>.
|
|---|
| 161 |
|
|---|
| 162 | ** Binary input and output are now implemented more consistently.
|
|---|
| 163 | These changes affect only platforms like MS-DOS that distinguish
|
|---|
| 164 | between binary and text files.
|
|---|
| 165 |
|
|---|
| 166 | The following programs now always use text input/output:
|
|---|
| 167 |
|
|---|
| 168 | expand unexpand
|
|---|
| 169 |
|
|---|
| 170 | The following programs now always use binary input/output to copy data:
|
|---|
| 171 |
|
|---|
| 172 | cp install mv shred
|
|---|
| 173 |
|
|---|
| 174 | The following programs now always use binary input/output to copy
|
|---|
| 175 | data, except for stdin and stdout when it is a terminal.
|
|---|
| 176 |
|
|---|
| 177 | head tac tail tee tr
|
|---|
| 178 | (cat behaves similarly, unless one of the options -bensAE is used.)
|
|---|
| 179 |
|
|---|
| 180 | cat's --binary or -B option has been removed. It existed only on
|
|---|
| 181 | MS-DOS-like platforms, and didn't work as documented there.
|
|---|
| 182 |
|
|---|
| 183 | md5sum and sha1sum now obey the -b or --binary option, even if
|
|---|
| 184 | standard input is a terminal, and they no longer report files to be
|
|---|
| 185 | binary if they actually read them in text mode.
|
|---|
| 186 |
|
|---|
| 187 | ** Changes for better conformance to POSIX
|
|---|
| 188 |
|
|---|
| 189 | cp, ln, mv, rm changes:
|
|---|
| 190 |
|
|---|
| 191 | Leading white space is now significant in responses to yes-or-no questions.
|
|---|
| 192 | For example, if "rm" asks "remove regular file `foo'?" and you respond
|
|---|
| 193 | with " y" (i.e., space before "y"), it counts as "no".
|
|---|
| 194 |
|
|---|
| 195 | dd changes:
|
|---|
| 196 |
|
|---|
| 197 | On a QUIT or PIPE signal, dd now exits without printing statistics.
|
|---|
| 198 |
|
|---|
| 199 | On hosts lacking the INFO signal, dd no longer treats the USR1
|
|---|
| 200 | signal as if it were INFO when POSIXLY_CORRECT is set.
|
|---|
| 201 |
|
|---|
| 202 | If the file F is non-seekable and contains fewer than N blocks,
|
|---|
| 203 | then before copying "dd seek=N of=F" now extends F with zeroed
|
|---|
| 204 | blocks until F contains N blocks.
|
|---|
| 205 |
|
|---|
| 206 | fold changes:
|
|---|
| 207 |
|
|---|
| 208 | When POSIXLY_CORRECT is set, "fold file -3" is now equivalent to
|
|---|
| 209 | "fold file ./-3", not the obviously-erroneous "fold file ./-w3".
|
|---|
| 210 |
|
|---|
| 211 | ls changes:
|
|---|
| 212 |
|
|---|
| 213 | -p now marks only directories; it is equivalent to the new option
|
|---|
| 214 | --indicator-style=slash. Use --file-type or
|
|---|
| 215 | --indicator-style=file-type to get -p's old behavior.
|
|---|
| 216 |
|
|---|
| 217 | nice changes:
|
|---|
| 218 |
|
|---|
| 219 | Documentation and diagnostics now refer to "nicenesses" (commonly
|
|---|
| 220 | in the range -20...19) rather than "nice values" (commonly 0...39).
|
|---|
| 221 |
|
|---|
| 222 | nohup changes:
|
|---|
| 223 |
|
|---|
| 224 | nohup now ignores the umask when creating nohup.out.
|
|---|
| 225 |
|
|---|
| 226 | nohup now closes stderr if it is a terminal and stdout is closed.
|
|---|
| 227 |
|
|---|
| 228 | nohup now exits with status 127 (not 1) when given an invalid option.
|
|---|
| 229 |
|
|---|
| 230 | pathchk changes:
|
|---|
| 231 |
|
|---|
| 232 | It now rejects the empty name in the normal case. That is,
|
|---|
| 233 | "pathchk -p ''" now fails, and "pathchk ''" fails unless the
|
|---|
| 234 | current host (contra POSIX) allows empty file names.
|
|---|
| 235 |
|
|---|
| 236 | The new -P option checks whether a file name component has leading "-",
|
|---|
| 237 | as suggested in interpretation "Austin-039:XCU:pathchk:pathchk -p"
|
|---|
| 238 | <http://www.opengroup.org/austin/interps/doc.tpl?gdid=6232>.
|
|---|
| 239 | It also rejects the empty name even if the current host accepts it; see
|
|---|
| 240 | <http://www.opengroup.org/austin/interps/doc.tpl?gdid=6233>.
|
|---|
| 241 |
|
|---|
| 242 | The --portability option is now equivalent to -p -P.
|
|---|
| 243 |
|
|---|
| 244 | ** Bug fixes
|
|---|
| 245 |
|
|---|
| 246 | chmod, mkdir, mkfifo, and mknod formerly mishandled rarely-used symbolic
|
|---|
| 247 | permissions like =xX and =u, and did not properly diagnose some invalid
|
|---|
| 248 | strings like g+gr, ug,+x, and +1. These bugs have been fixed.
|
|---|
| 249 |
|
|---|
| 250 | csplit could produce corrupt output, given input lines longer than 8KB
|
|---|
| 251 |
|
|---|
| 252 | dd now computes statistics using a realtime clock (if available)
|
|---|
| 253 | rather than the time-of-day clock, to avoid glitches if the
|
|---|
| 254 | time-of-day is changed while dd is running. Also, it avoids
|
|---|
| 255 | using unsafe code in signal handlers; this fixes some core dumps.
|
|---|
| 256 |
|
|---|
| 257 | expr and test now correctly compare integers of unlimited magnitude.
|
|---|
| 258 |
|
|---|
| 259 | expr now detects integer overflow when converting strings to integers,
|
|---|
| 260 | rather than silently wrapping around.
|
|---|
| 261 |
|
|---|
| 262 | ls now refuses to generate time stamps containing more than 1000 bytes, to
|
|---|
| 263 | foil potential denial-of-service attacks on hosts with very large stacks.
|
|---|
| 264 |
|
|---|
| 265 | "mkdir -m =+x dir" no longer ignores the umask when evaluating "+x",
|
|---|
| 266 | and similarly for mkfifo and mknod.
|
|---|
| 267 |
|
|---|
| 268 | "mkdir -p /tmp/a/b dir" no longer attempts to create the `.'-relative
|
|---|
| 269 | directory, dir (in /tmp/a), when, after creating /tmp/a/b, it is unable
|
|---|
| 270 | to return to its initial working directory. Similarly for "install -D
|
|---|
| 271 | file /tmp/a/b/file".
|
|---|
| 272 |
|
|---|
| 273 | "pr -D FORMAT" now accepts the same formats that "date +FORMAT" does.
|
|---|
| 274 |
|
|---|
| 275 | stat now exits nonzero if a file operand does not exist
|
|---|
| 276 |
|
|---|
| 277 | ** Improved robustness
|
|---|
| 278 |
|
|---|
| 279 | Date no longer needs to allocate virtual memory to do its job,
|
|---|
| 280 | so it can no longer fail due to an out-of-memory condition,
|
|---|
| 281 | no matter how large the result.
|
|---|
| 282 |
|
|---|
| 283 | ** Improved portability
|
|---|
| 284 |
|
|---|
| 285 | hostid now prints exactly 8 hexadecimal digits, possibly with leading zeros,
|
|---|
| 286 | and without any spurious leading "fff..." on 64-bit hosts.
|
|---|
| 287 |
|
|---|
| 288 | nice now works on Darwin 7.7.0 in spite of its invalid definition of NZERO.
|
|---|
| 289 |
|
|---|
| 290 | `rm -r' can remove all entries in a directory even when it is on a
|
|---|
| 291 | file system for which readdir is buggy and that was not checked by
|
|---|
| 292 | coreutils' old configure-time run-test.
|
|---|
| 293 |
|
|---|
| 294 | sleep no longer fails when resumed after being suspended on linux-2.6.8.1,
|
|---|
| 295 | in spite of that kernel's buggy nanosleep implementation.
|
|---|
| 296 |
|
|---|
| 297 | ** New features
|
|---|
| 298 |
|
|---|
| 299 | chmod -w now complains if its behavior differs from what chmod a-w
|
|---|
| 300 | would do, and similarly for chmod -r, chmod -x, etc.
|
|---|
| 301 |
|
|---|
| 302 | cp and mv: the --reply=X option is deprecated
|
|---|
| 303 |
|
|---|
| 304 | date accepts the new option --rfc-3339=TIMESPEC. The old --iso-8602 (-I)
|
|---|
| 305 | option is deprecated; it still works, but new applications should avoid it.
|
|---|
| 306 | date, du, ls, and pr's time formats now support new %:z, %::z, %:::z
|
|---|
| 307 | specifiers for numeric time zone offsets like -07:00, -07:00:00, and -07.
|
|---|
| 308 |
|
|---|
| 309 | dd has new iflag= and oflag= flags "binary" and "text", which have an
|
|---|
| 310 | effect only on nonstandard platforms that distinguish text from binary I/O.
|
|---|
| 311 |
|
|---|
| 312 | dircolors now supports SETUID, SETGID, STICKY_OTHER_WRITABLE,
|
|---|
| 313 | OTHER_WRITABLE, and STICKY, with ls providing default colors for these
|
|---|
| 314 | categories if not specified by dircolors.
|
|---|
| 315 |
|
|---|
| 316 | du accepts new options: --time[=TYPE] and --time-style=STYLE
|
|---|
| 317 |
|
|---|
| 318 | join now supports a NUL field separator, e.g., "join -t '\0'".
|
|---|
| 319 | join now detects and reports incompatible options, e.g., "join -t x -t y",
|
|---|
| 320 |
|
|---|
| 321 | ls no longer outputs an extra space between the mode and the link count
|
|---|
| 322 | when none of the listed files has an ACL.
|
|---|
| 323 |
|
|---|
| 324 | md5sum --check now accepts multiple input files, and similarly for sha1sum.
|
|---|
| 325 |
|
|---|
| 326 | If stdin is a terminal, nohup now redirects it from /dev/null to
|
|---|
| 327 | prevent the command from tying up an OpenSSH session after you logout.
|
|---|
| 328 |
|
|---|
| 329 | "rm -FOO" now suggests "rm ./-FOO" if the file "-FOO" exists and
|
|---|
| 330 | "-FOO" is not a valid option.
|
|---|
| 331 |
|
|---|
| 332 | stat -f -c %S outputs the fundamental block size (used for block counts).
|
|---|
| 333 | stat -f's default output format has been changed to output this size as well.
|
|---|
| 334 | stat -f recognizes file systems of type XFS and JFS
|
|---|
| 335 |
|
|---|
| 336 | "touch -" now touches standard output, not a file named "-".
|
|---|
| 337 |
|
|---|
| 338 | uname -a no longer generates the -p and -i outputs if they are unknown.
|
|---|
| 339 |
|
|---|
| 340 | * Major changes in release 5.3.0 (2005-01-08) [unstable]
|
|---|
| 341 |
|
|---|
| 342 | ** Bug fixes
|
|---|
| 343 |
|
|---|
| 344 | Several fixes to chgrp and chown for compatibility with POSIX and BSD:
|
|---|
| 345 |
|
|---|
| 346 | Do not affect symbolic links by default.
|
|---|
| 347 | Now, operate on whatever a symbolic link points to, instead.
|
|---|
| 348 | To get the old behavior, use --no-dereference (-h).
|
|---|
| 349 |
|
|---|
| 350 | --dereference now works, even when the specified owner
|
|---|
| 351 | and/or group match those of an affected symlink.
|
|---|
| 352 |
|
|---|
| 353 | Check for incompatible options. When -R and --dereference are
|
|---|
| 354 | both used, then either -H or -L must also be used. When -R and -h
|
|---|
| 355 | are both used, then -P must be in effect.
|
|---|
| 356 |
|
|---|
| 357 | -H, -L, and -P have no effect unless -R is also specified.
|
|---|
| 358 | If -P and -R are both specified, -h is assumed.
|
|---|
| 359 |
|
|---|
| 360 | Do not optimize away the chown() system call when the file's owner
|
|---|
| 361 | and group already have the desired value. This optimization was
|
|---|
| 362 | incorrect, as it failed to update the last-changed time and reset
|
|---|
| 363 | special permission bits, as POSIX requires.
|
|---|
| 364 |
|
|---|
| 365 | "chown : file", "chown '' file", and "chgrp '' file" now succeed
|
|---|
| 366 | without changing the uid or gid, instead of reporting an error.
|
|---|
| 367 |
|
|---|
| 368 | Do not report an error if the owner or group of a
|
|---|
| 369 | recursively-encountered symbolic link cannot be updated because
|
|---|
| 370 | the file system does not support it.
|
|---|
| 371 |
|
|---|
| 372 | chmod now accepts multiple mode-like options, e.g., "chmod -r -w f".
|
|---|
| 373 |
|
|---|
| 374 | chown is no longer subject to a race condition vulnerability, when
|
|---|
| 375 | used with --from=O:G and without the (-h) --no-dereference option.
|
|---|
| 376 |
|
|---|
| 377 | cut's --output-delimiter=D option works with abutting byte ranges.
|
|---|
| 378 |
|
|---|
| 379 | dircolors's documentation now recommends that shell scripts eval
|
|---|
| 380 | "`dircolors`" rather than `dircolors`, to avoid shell expansion pitfalls.
|
|---|
| 381 |
|
|---|
| 382 | du no longer segfaults when a subdirectory of an operand
|
|---|
| 383 | directory is removed while du is traversing that subdirectory.
|
|---|
| 384 | Since the bug was in the underlying fts.c module, it also affected
|
|---|
| 385 | chown, chmod, and chgrp.
|
|---|
| 386 |
|
|---|
| 387 | du's --exclude-from=FILE and --exclude=P options now compare patterns
|
|---|
| 388 | against the entire name of each file, rather than against just the
|
|---|
| 389 | final component.
|
|---|
| 390 |
|
|---|
| 391 | echo now conforms to POSIX better. It supports the \0ooo syntax for
|
|---|
| 392 | octal escapes, and \c now terminates printing immediately. If
|
|---|
| 393 | POSIXLY_CORRECT is set and the first argument is not "-n", echo now
|
|---|
| 394 | outputs all option-like arguments instead of treating them as options.
|
|---|
| 395 |
|
|---|
| 396 | expand and unexpand now conform to POSIX better. They check for
|
|---|
| 397 | blanks (which can include characters other than space and tab in
|
|---|
| 398 | non-POSIX locales) instead of spaces and tabs. Unexpand now
|
|---|
| 399 | preserves some blanks instead of converting them to tabs or spaces.
|
|---|
| 400 |
|
|---|
| 401 | "ln x d/" now reports an error if d/x is a directory and x a file,
|
|---|
| 402 | instead of incorrectly creating a link to d/x/x.
|
|---|
| 403 |
|
|---|
| 404 | ls no longer segfaults on systems for which SIZE_MAX != (size_t) -1.
|
|---|
| 405 |
|
|---|
| 406 | md5sum and sha1sum now report an error when given so many input
|
|---|
| 407 | lines that their line counter overflows, instead of silently
|
|---|
| 408 | reporting incorrect results.
|
|---|
| 409 |
|
|---|
| 410 | Fixes for "nice":
|
|---|
| 411 |
|
|---|
| 412 | If it fails to lower the niceness due to lack of permissions,
|
|---|
| 413 | it goes ahead and runs the command anyway, as POSIX requires.
|
|---|
| 414 |
|
|---|
| 415 | It no longer incorrectly reports an error if the current niceness
|
|---|
| 416 | happens to be -1.
|
|---|
| 417 |
|
|---|
| 418 | It no longer assumes that nicenesses range from -20 through 19.
|
|---|
| 419 |
|
|---|
| 420 | It now consistently adjusts out-of-range nicenesses to the
|
|---|
| 421 | closest values in range; formerly it sometimes reported an error.
|
|---|
| 422 |
|
|---|
| 423 | pathchk no longer accepts trailing options, e.g., "pathchk -p foo -b"
|
|---|
| 424 | now treats -b as a file name to check, not as an invalid option.
|
|---|
| 425 |
|
|---|
| 426 | `pr --columns=N' was not equivalent to `pr -N' when also using
|
|---|
| 427 | either -s or -w.
|
|---|
| 428 |
|
|---|
| 429 | pr now supports page numbers up to 2**64 on most hosts, and it
|
|---|
| 430 | detects page number overflow instead of silently wrapping around.
|
|---|
| 431 | pr now accepts file names that begin with "+" so long as the rest of
|
|---|
| 432 | the file name does not look like a page range.
|
|---|
| 433 |
|
|---|
| 434 | printf has several changes:
|
|---|
| 435 |
|
|---|
| 436 | It now uses 'intmax_t' (not 'long int') to format integers, so it
|
|---|
| 437 | can now format 64-bit integers on most modern hosts.
|
|---|
| 438 |
|
|---|
| 439 | On modern hosts it now supports the C99-inspired %a, %A, %F conversion
|
|---|
| 440 | specs, the "'" and "0" flags, and the ll, j, t, and z length modifiers
|
|---|
| 441 | (this is compatible with recent Bash versions).
|
|---|
| 442 |
|
|---|
| 443 | The printf command now rejects invalid conversion specifications
|
|---|
| 444 | like %#d, instead of relying on undefined behavior in the underlying
|
|---|
| 445 | printf function.
|
|---|
| 446 |
|
|---|
| 447 | ptx now diagnoses invalid values for its --width=N (-w)
|
|---|
| 448 | and --gap-size=N (-g) options.
|
|---|
| 449 |
|
|---|
| 450 | mv (when moving between partitions) no longer fails when
|
|---|
| 451 | operating on too many command-line-specified nonempty directories.
|
|---|
| 452 |
|
|---|
| 453 | rm (without -f) no longer hangs when attempting to remove a symlink
|
|---|
| 454 | to a file on an off-line NFS-mounted partition.
|
|---|
| 455 |
|
|---|
| 456 | rm no longer gets a failed assertion under some unusual conditions.
|
|---|
| 457 |
|
|---|
| 458 | rm no longer requires read access to the current directory.
|
|---|
| 459 |
|
|---|
| 460 | "rm -r" would mistakenly fail to remove files under a directory
|
|---|
| 461 | for some types of errors (e.g., read-only file system, I/O error)
|
|---|
| 462 | when first encountering the directory.
|
|---|
| 463 |
|
|---|
| 464 | "sort" fixes:
|
|---|
| 465 |
|
|---|
| 466 | "sort -o -" now writes to a file named "-" instead of to standard
|
|---|
| 467 | output; POSIX requires this.
|
|---|
| 468 |
|
|---|
| 469 | An unlikely race condition has been fixed where "sort" could have
|
|---|
| 470 | mistakenly removed a temporary file belonging to some other process.
|
|---|
| 471 |
|
|---|
| 472 | "sort" no longer has O(N**2) behavior when it creates many temporary files.
|
|---|
| 473 |
|
|---|
| 474 | tac can now handle regular, nonseekable files like Linux's
|
|---|
| 475 | /proc/modules. Before, it would produce no output for such a file.
|
|---|
| 476 |
|
|---|
| 477 | tac would exit immediately upon I/O or temp-file creation failure.
|
|---|
| 478 | Now it continues on, processing any remaining command line arguments.
|
|---|
| 479 |
|
|---|
| 480 | "tail -f" no longer mishandles pipes and fifos. With no operands,
|
|---|
| 481 | tail now ignores -f if standard input is a pipe, as POSIX requires.
|
|---|
| 482 | When conforming to POSIX 1003.2-1992, tail now supports the SUSv2 b
|
|---|
| 483 | modifier (e.g., "tail -10b file") and it handles some obscure cases
|
|---|
| 484 | more correctly, e.g., "tail +cl" now reads the file "+cl" rather
|
|---|
| 485 | than reporting an error, "tail -c file" no longer reports an error,
|
|---|
| 486 | and "tail - file" no longer reads standard input.
|
|---|
| 487 |
|
|---|
| 488 | tee now exits when it gets a SIGPIPE signal, as POSIX requires.
|
|---|
| 489 | To get tee's old behavior, use the shell command "(trap '' PIPE; tee)".
|
|---|
| 490 | Also, "tee -" now writes to standard output instead of to a file named "-".
|
|---|
| 491 |
|
|---|
| 492 | "touch -- MMDDhhmm[yy] file" is now equivalent to
|
|---|
| 493 | "touch MMDDhhmm[yy] file" even when conforming to pre-2001 POSIX.
|
|---|
| 494 |
|
|---|
| 495 | tr no longer mishandles a second operand with leading "-".
|
|---|
| 496 |
|
|---|
| 497 | who now prints user names in full instead of truncating them after 8 bytes.
|
|---|
| 498 |
|
|---|
| 499 | The following commands now reject unknown options instead of
|
|---|
| 500 | accepting them as operands, so that users are properly warned that
|
|---|
| 501 | options may be added later. Formerly they accepted unknown options
|
|---|
| 502 | as operands; e.g., "basename -a a" acted like "basename -- -a a".
|
|---|
| 503 |
|
|---|
| 504 | basename dirname factor hostname link nohup sync unlink yes
|
|---|
| 505 |
|
|---|
| 506 | ** New features
|
|---|
| 507 |
|
|---|
| 508 | For efficiency, `sort -m' no longer copies input to a temporary file
|
|---|
| 509 | merely because the input happens to come from a pipe. As a result,
|
|---|
| 510 | some relatively-contrived examples like `cat F | sort -m -o F - G'
|
|---|
| 511 | are no longer safe, as `sort' might start writing F before `cat' is
|
|---|
| 512 | done reading it. This problem cannot occur unless `-m' is used.
|
|---|
| 513 |
|
|---|
| 514 | When outside the default POSIX locale, the 'who' and 'pinky'
|
|---|
| 515 | commands now output time stamps like "2004-06-21 13:09" instead of
|
|---|
| 516 | the traditional "Jun 21 13:09".
|
|---|
| 517 |
|
|---|
| 518 | pwd now works even when run from a working directory whose name
|
|---|
| 519 | is longer than PATH_MAX.
|
|---|
| 520 |
|
|---|
| 521 | cp, install, ln, and mv have a new --no-target-directory (-T) option,
|
|---|
| 522 | and -t is now a short name for their --target-directory option.
|
|---|
| 523 |
|
|---|
| 524 | cp -pu and mv -u (when copying) now don't bother to update the
|
|---|
| 525 | destination if the resulting time stamp would be no newer than the
|
|---|
| 526 | preexisting time stamp. This saves work in the common case when
|
|---|
| 527 | copying or moving multiple times to the same destination in a file
|
|---|
| 528 | system with a coarse time stamp resolution.
|
|---|
| 529 |
|
|---|
| 530 | cut accepts a new option, --complement, to complement the set of
|
|---|
| 531 | selected bytes, characters, or fields.
|
|---|
| 532 |
|
|---|
| 533 | dd now also prints the number of bytes transferred, the time, and the
|
|---|
| 534 | transfer rate. The new "status=noxfer" operand suppresses this change.
|
|---|
| 535 |
|
|---|
| 536 | dd has new conversions for the conv= option:
|
|---|
| 537 |
|
|---|
| 538 | nocreat do not create the output file
|
|---|
| 539 | excl fail if the output file already exists
|
|---|
| 540 | fdatasync physically write output file data before finishing
|
|---|
| 541 | fsync likewise, but also write metadata
|
|---|
| 542 |
|
|---|
| 543 | dd has new iflag= and oflag= options with the following flags:
|
|---|
| 544 |
|
|---|
| 545 | append append mode (makes sense for output file only)
|
|---|
| 546 | direct use direct I/O for data
|
|---|
| 547 | dsync use synchronized I/O for data
|
|---|
| 548 | sync likewise, but also for metadata
|
|---|
| 549 | nonblock use non-blocking I/O
|
|---|
| 550 | nofollow do not follow symlinks
|
|---|
| 551 | noctty do not assign controlling terminal from file
|
|---|
| 552 |
|
|---|
| 553 | stty now provides support (iutf8) for setting UTF-8 input mode.
|
|---|
| 554 |
|
|---|
| 555 | With stat, a specified format is no longer automatically newline terminated.
|
|---|
| 556 | If you want a newline at the end of your output, append `\n' to the format
|
|---|
| 557 | string.
|
|---|
| 558 |
|
|---|
| 559 | 'df', 'du', and 'ls' now take the default block size from the
|
|---|
| 560 | BLOCKSIZE environment variable if the BLOCK_SIZE, DF_BLOCK_SIZE,
|
|---|
| 561 | DU_BLOCK_SIZE, and LS_BLOCK_SIZE environment variables are not set.
|
|---|
| 562 | Unlike the other variables, though, BLOCKSIZE does not affect
|
|---|
| 563 | values like 'ls -l' sizes that are normally displayed as bytes.
|
|---|
| 564 | This new behavior is for compatibility with BSD.
|
|---|
| 565 |
|
|---|
| 566 | du accepts a new option --files0-from=FILE, where FILE contains a
|
|---|
| 567 | list of NUL-terminated file names.
|
|---|
| 568 |
|
|---|
| 569 | Date syntax as used by date -d, date -f, and touch -d has been
|
|---|
| 570 | changed as follows:
|
|---|
| 571 |
|
|---|
| 572 | Dates like `January 32' with out-of-range components are now rejected.
|
|---|
| 573 |
|
|---|
| 574 | Dates can have fractional time stamps like 2004-02-27 14:19:13.489392193.
|
|---|
| 575 |
|
|---|
| 576 | Dates can be entered via integer counts of seconds since 1970 when
|
|---|
| 577 | prefixed by `@'. For example, `@321' represents 1970-01-01 00:05:21 UTC.
|
|---|
| 578 |
|
|---|
| 579 | Time zone corrections can now separate hours and minutes with a colon,
|
|---|
| 580 | and can follow standard abbreviations like "UTC". For example,
|
|---|
| 581 | "UTC +0530" and "+05:30" are supported, and are both equivalent to "+0530".
|
|---|
| 582 |
|
|---|
| 583 | Date values can now have leading TZ="..." assignments that override
|
|---|
| 584 | the environment only while that date is being processed. For example,
|
|---|
| 585 | the following shell command converts from Paris to New York time:
|
|---|
| 586 |
|
|---|
| 587 | TZ="America/New_York" date --date='TZ="Europe/Paris" 2004-10-31 06:30'
|
|---|
| 588 |
|
|---|
| 589 | `date' has a new option --iso-8601=ns that outputs
|
|---|
| 590 | nanosecond-resolution time stamps.
|
|---|
| 591 |
|
|---|
| 592 | echo -e '\xHH' now outputs a byte whose hexadecimal value is HH,
|
|---|
| 593 | for compatibility with bash.
|
|---|
| 594 |
|
|---|
| 595 | ls now exits with status 1 on minor problems, 2 if serious trouble.
|
|---|
| 596 |
|
|---|
| 597 | ls has a new --hide=PATTERN option that behaves like
|
|---|
| 598 | --ignore=PATTERN, except that it is overridden by -a or -A.
|
|---|
| 599 | This can be useful for aliases, e.g., if lh is an alias for
|
|---|
| 600 | "ls --hide='*~'", then "lh -A" lists the file "README~".
|
|---|
| 601 |
|
|---|
| 602 | In the following cases POSIX allows the default GNU behavior,
|
|---|
| 603 | so when POSIXLY_CORRECT is set:
|
|---|
| 604 |
|
|---|
| 605 | false, printf, true, unlink, and yes all support --help and --option.
|
|---|
| 606 | ls supports TABSIZE.
|
|---|
| 607 | pr no longer depends on LC_TIME for the date format in non-POSIX locales.
|
|---|
| 608 | printf supports \u, \U, \x.
|
|---|
| 609 | tail supports two or more files when using the obsolete option syntax.
|
|---|
| 610 |
|
|---|
| 611 | The usual `--' operand is now supported by chroot, hostid, hostname,
|
|---|
| 612 | pwd, sync, and yes.
|
|---|
| 613 |
|
|---|
| 614 | `od' now conforms to POSIX better, and is more compatible with BSD:
|
|---|
| 615 |
|
|---|
| 616 | The older syntax "od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]]" now works
|
|---|
| 617 | even without --traditional. This is a change in behavior if there
|
|---|
| 618 | are one or two operands and the last one begins with +, or if
|
|---|
| 619 | there are two operands and the latter one begins with a digit.
|
|---|
| 620 | For example, "od foo 10" and "od +10" now treat the last operand as
|
|---|
| 621 | an offset, not as a file name.
|
|---|
| 622 |
|
|---|
| 623 | -h is no longer documented, and may be withdrawn in future versions.
|
|---|
| 624 | Use -x or -t x2 instead.
|
|---|
| 625 |
|
|---|
| 626 | -i is now equivalent to -t dI (not -t d2), and
|
|---|
| 627 | -l is now equivalent to -t dL (not -t d4).
|
|---|
| 628 |
|
|---|
| 629 | -s is now equivalent to -t d2. The old "-s[NUM]" or "-s NUM"
|
|---|
| 630 | option has been renamed to "-S NUM".
|
|---|
| 631 |
|
|---|
| 632 | The default output format is now -t oS, not -t o2, i.e., short int
|
|---|
| 633 | rather than two-byte int. This makes a difference only on hosts like
|
|---|
| 634 | Cray systems where the C short int type requires more than two bytes.
|
|---|
| 635 |
|
|---|
| 636 | The stat option --filesystem has been renamed to --file-system, for
|
|---|
| 637 | consistency with POSIX "file system" and with cp and du --one-file-system.
|
|---|
| 638 |
|
|---|
| 639 | ** Removed features
|
|---|
| 640 |
|
|---|
| 641 | md5sum and sha1sum's undocumented --string option has been removed.
|
|---|
| 642 |
|
|---|
| 643 | tail's undocumented --max-consecutive-size-changes option has been removed.
|
|---|
| 644 |
|
|---|
| 645 | * Major changes in release 5.2.1 (2004-03-12) [stable]
|
|---|
| 646 |
|
|---|
| 647 | ** Bug fixes
|
|---|
| 648 |
|
|---|
| 649 | mv could mistakenly fail to preserve hard links when moving two
|
|---|
| 650 | or more arguments between partitions.
|
|---|
| 651 |
|
|---|
| 652 | `cp --sparse=always F /dev/hdx' no longer tries to use lseek to create
|
|---|
| 653 | holes in the destination.
|
|---|
| 654 |
|
|---|
| 655 | nohup now sets the close-on-exec flag for its copy of the stderr file
|
|---|
| 656 | descriptor. This avoids some nohup-induced hangs. For example, before
|
|---|
| 657 | this change, if you ran `ssh localhost', then `nohup sleep 600 </dev/null &',
|
|---|
| 658 | and then exited that remote shell, the ssh session would hang until the
|
|---|
| 659 | 10-minute sleep terminated. With the fixed nohup, the ssh session
|
|---|
| 660 | terminates immediately.
|
|---|
| 661 |
|
|---|
| 662 | `expr' now conforms to POSIX better:
|
|---|
| 663 |
|
|---|
| 664 | Integers like -0 and 00 are now treated as zero.
|
|---|
| 665 |
|
|---|
| 666 | The `|' operator now returns 0, not its first argument, if both
|
|---|
| 667 | arguments are null or zero. E.g., `expr "" \| ""' now returns 0,
|
|---|
| 668 | not the empty string.
|
|---|
| 669 |
|
|---|
| 670 | The `|' and `&' operators now use short-circuit evaluation, e.g.,
|
|---|
| 671 | `expr 1 \| 1 / 0' no longer reports a division by zero.
|
|---|
| 672 |
|
|---|
| 673 | ** New features
|
|---|
| 674 |
|
|---|
| 675 | `chown user.group file' now has its traditional meaning even when
|
|---|
| 676 | conforming to POSIX 1003.1-2001, so long as no user has a name
|
|---|
| 677 | containing `.' that happens to equal `user.group'.
|
|---|
| 678 |
|
|---|
| 679 |
|
|---|
| 680 | * Major changes in release 5.2.0 (2004-02-19) [stable]
|
|---|
| 681 |
|
|---|
| 682 | ** Bug fixes
|
|---|
| 683 |
|
|---|
| 684 | none
|
|---|
| 685 |
|
|---|
| 686 |
|
|---|
| 687 | * Major changes in release 5.1.3 (2004-02-08): candidate to become stable 5.2.0
|
|---|
| 688 |
|
|---|
| 689 | ** Bug fixes
|
|---|
| 690 |
|
|---|
| 691 | `cp -d' now works as required even on systems like OSF V5.1 that
|
|---|
| 692 | declare stat and lstat as `static inline' functions.
|
|---|
| 693 |
|
|---|
| 694 | time stamps output by stat now include actual fractional seconds,
|
|---|
| 695 | when available -- or .0000000 for files without that information.
|
|---|
| 696 |
|
|---|
| 697 | seq no longer infloops when printing 2^31 or more numbers.
|
|---|
| 698 | For reference, seq `echo 2^31|bc` > /dev/null takes about one hour
|
|---|
| 699 | on a 1.6 GHz Athlon 2000 XP. Now it can output 2^53-1 numbers before
|
|---|
| 700 | misbehaving.
|
|---|
| 701 |
|
|---|
| 702 | * Major changes in release 5.1.2 (2004-01-25):
|
|---|
| 703 |
|
|---|
| 704 | ** Bug fixes
|
|---|
| 705 |
|
|---|
| 706 | rmdir -p exits with status 1 on error; formerly it sometimes exited
|
|---|
| 707 | with status 0 when given more than one argument.
|
|---|
| 708 |
|
|---|
| 709 | nohup now always exits with status 127 when it finds an error,
|
|---|
| 710 | as POSIX requires; formerly it sometimes exited with status 1.
|
|---|
| 711 |
|
|---|
| 712 | Several programs (including cut, date, dd, env, hostname, nl, pr,
|
|---|
| 713 | stty, and tr) now always exit with status 1 when they find an error;
|
|---|
| 714 | formerly they sometimes exited with status 2.
|
|---|
| 715 |
|
|---|
| 716 | factor no longer reports a usage error if stdin has the wrong format.
|
|---|
| 717 |
|
|---|
| 718 | paste no longer infloops on ppc systems (bug introduced in 5.1.1)
|
|---|
| 719 |
|
|---|
| 720 |
|
|---|
| 721 | * Major changes in release 5.1.1 (2004-01-17):
|
|---|
| 722 |
|
|---|
| 723 | ** Configuration option
|
|---|
| 724 |
|
|---|
| 725 | You can select the default level of POSIX conformance at configure-time,
|
|---|
| 726 | e.g., by ./configure DEFAULT_POSIX2_VERSION=199209
|
|---|
| 727 |
|
|---|
| 728 | ** Bug fixes
|
|---|
| 729 |
|
|---|
| 730 | fold -s works once again on systems with differing sizes for int
|
|---|
| 731 | and size_t (bug introduced in 5.1.0)
|
|---|
| 732 |
|
|---|
| 733 | ** New features
|
|---|
| 734 |
|
|---|
| 735 | touch -r now specifies the origin for any relative times in the -d
|
|---|
| 736 | operand, if both options are given. For example, "touch -r FOO -d
|
|---|
| 737 | '-5 seconds' BAR" sets BAR's modification time to be five seconds
|
|---|
| 738 | before FOO's.
|
|---|
| 739 |
|
|---|
| 740 | join: The obsolete options "-j1 FIELD", "-j2 FIELD", and
|
|---|
| 741 | "-o LIST1 LIST2..." are no longer supported on POSIX 1003.1-2001 systems.
|
|---|
| 742 | Portable scripts should use "-1 FIELD", "-2 FIELD", and
|
|---|
| 743 | "-o LIST1,LIST2..." respectively. If join was compiled on a
|
|---|
| 744 | POSIX 1003.1-2001 system, you may enable the old behavior
|
|---|
| 745 | by setting _POSIX2_VERSION=199209 in your environment.
|
|---|
| 746 | [This change was reverted in coreutils 5.3.1.]
|
|---|
| 747 |
|
|---|
| 748 |
|
|---|
| 749 | * Major changes in release 5.1.0 (2003-12-21):
|
|---|
| 750 |
|
|---|
| 751 | ** New features
|
|---|
| 752 |
|
|---|
| 753 | chgrp, chmod, and chown can now process (with -R) hierarchies of virtually
|
|---|
| 754 | unlimited depth. Before, they would fail to operate on any file they
|
|---|
| 755 | encountered with a relative name of length PATH_MAX (often 4096) or longer.
|
|---|
| 756 |
|
|---|
| 757 | chgrp, chmod, chown, and rm accept the new options:
|
|---|
| 758 | --preserve-root, --no-preserve-root (default)
|
|---|
| 759 |
|
|---|
| 760 | chgrp and chown now accept POSIX-mandated -L, -H, and -P options
|
|---|
| 761 |
|
|---|
| 762 | du can now process hierarchies of virtually unlimited depth.
|
|---|
| 763 | Before, du was limited by the user's stack size and it would get a
|
|---|
| 764 | stack overflow error (often a segmentation fault) when applied to
|
|---|
| 765 | a hierarchy of depth around 30,000 or larger.
|
|---|
| 766 |
|
|---|
| 767 | du works even when run from an inaccessible directory
|
|---|
| 768 |
|
|---|
| 769 | du -D now dereferences all symlinks specified on the command line,
|
|---|
| 770 | not just the ones that reference directories
|
|---|
| 771 |
|
|---|
| 772 | du now accepts -P (--no-dereference), for compatibility with du
|
|---|
| 773 | of NetBSD and for consistency with e.g., chown and chgrp
|
|---|
| 774 |
|
|---|
| 775 | du's -H option will soon have the meaning required by POSIX
|
|---|
| 776 | (--dereference-args, aka -D) rather then the current meaning of --si.
|
|---|
| 777 | Now, using -H elicits a warning to that effect.
|
|---|
| 778 |
|
|---|
| 779 | When given -l and similar options, ls now adjusts the output column
|
|---|
| 780 | widths to fit the data, so that output lines are shorter and have
|
|---|
| 781 | columns that line up better. This may adversely affect shell
|
|---|
| 782 | scripts that expect fixed-width columns, but such shell scripts were
|
|---|
| 783 | not portable anyway, even with old GNU ls where the columns became
|
|---|
| 784 | ragged when a datum was too wide.
|
|---|
| 785 |
|
|---|
| 786 | du accepts a new option, -0/--null, to make it produce NUL-terminated
|
|---|
| 787 | output lines
|
|---|
| 788 |
|
|---|
| 789 | ** Bug fixes
|
|---|
| 790 |
|
|---|
| 791 | printf, seq, tail, and sleep now parse floating-point operands
|
|---|
| 792 | and options in the C locale. POSIX requires this for printf.
|
|---|
| 793 |
|
|---|
| 794 | od -c -w9999999 no longer segfaults
|
|---|
| 795 |
|
|---|
| 796 | csplit no longer reads from freed memory (dumping core on some systems)
|
|---|
| 797 |
|
|---|
| 798 | csplit would mistakenly exhaust virtual memory in some cases
|
|---|
| 799 |
|
|---|
| 800 | ls --width=N (for very large N) is no longer subject to an address
|
|---|
| 801 | arithmetic bug that could result in bounds violations.
|
|---|
| 802 |
|
|---|
| 803 | ls --width=N (with -x or -C) no longer allocates more space
|
|---|
| 804 | (potentially much more) than necessary for a given directory.
|
|---|
| 805 |
|
|---|
| 806 | dd `unblock' and `sync' may now be combined (e.g., dd conv=unblock,sync)
|
|---|
| 807 |
|
|---|
| 808 | * Major changes in release 5.0.91 (2003-09-08):
|
|---|
| 809 |
|
|---|
| 810 | ** New features
|
|---|
| 811 |
|
|---|
| 812 | date accepts a new option --rfc-2822, an alias for --rfc-822.
|
|---|
| 813 |
|
|---|
| 814 | split accepts a new option -d or --numeric-suffixes.
|
|---|
| 815 |
|
|---|
| 816 | cp, install, mv, and touch now preserve microsecond resolution on
|
|---|
| 817 | file timestamps, on platforms that have the 'utimes' system call.
|
|---|
| 818 | Unfortunately there is no system call yet to preserve file
|
|---|
| 819 | timestamps to their full nanosecond resolution; microsecond
|
|---|
| 820 | resolution is the best we can do right now.
|
|---|
| 821 |
|
|---|
| 822 | sort now supports the zero byte (NUL) as a field separator; use -t '\0'.
|
|---|
| 823 | The -t '' option, which formerly had no effect, is now an error.
|
|---|
| 824 |
|
|---|
| 825 | sort option order no longer matters for the options -S, -d, -i, -o, and -t.
|
|---|
| 826 | Stronger options override weaker, and incompatible options are diagnosed.
|
|---|
| 827 |
|
|---|
| 828 | `sha1sum --check' now accepts the BSD format for SHA1 message digests
|
|---|
| 829 | in addition to the BSD format for MD5 ones.
|
|---|
| 830 |
|
|---|
| 831 | who -l now means `who --login', not `who --lookup', per POSIX.
|
|---|
| 832 | who's -l option has been eliciting an unconditional warning about
|
|---|
| 833 | this impending change since sh-utils-2.0.12 (April 2002).
|
|---|
| 834 |
|
|---|
| 835 | ** Bug fixes
|
|---|
| 836 |
|
|---|
| 837 | Mistakenly renaming a file onto itself, e.g., via `mv B b' when `B' is
|
|---|
| 838 | the same directory entry as `b' no longer destroys the directory entry
|
|---|
| 839 | referenced by both `b' and `B'. Note that this would happen only on
|
|---|
| 840 | file systems like VFAT where two different names may refer to the same
|
|---|
| 841 | directory entry, usually due to lower->upper case mapping of file names.
|
|---|
| 842 | Now, the above can happen only on file systems that perform name mapping and
|
|---|
| 843 | that support hard links (stat.st_nlink > 1). This mitigates the problem
|
|---|
| 844 | in two ways: few file systems appear to be affected (hpfs and ntfs are),
|
|---|
| 845 | when the bug is triggered, mv no longer removes the last hard link to a file.
|
|---|
| 846 | *** ATTENTION ***: if you know how to distinguish the following two cases
|
|---|
| 847 | without writing to the file system in question, please let me know:
|
|---|
| 848 | 1) B and b refer to the same directory entry on a file system like NTFS
|
|---|
| 849 | (B may well have a link count larger than 1)
|
|---|
| 850 | 2) B and b are hard links to the same file
|
|---|
| 851 |
|
|---|
| 852 | stat no longer overruns a buffer for format strings ending in `%'
|
|---|
| 853 |
|
|---|
| 854 | fold -s -wN would infloop for N < 8 with TABs in the input.
|
|---|
| 855 | E.g., this would not terminate: printf 'a\t' | fold -w2 -s
|
|---|
| 856 |
|
|---|
| 857 | `split -a0', although of questionable utility, is accepted once again.
|
|---|
| 858 |
|
|---|
| 859 | `df DIR' used to hang under some conditions on OSF/1 5.1. Now it doesn't.
|
|---|
| 860 |
|
|---|
| 861 | seq's --width (-w) option now works properly even when the endpoint
|
|---|
| 862 | requiring the larger width is negative and smaller than the other endpoint.
|
|---|
| 863 |
|
|---|
| 864 | seq's default step is 1, even if LAST < FIRST.
|
|---|
| 865 |
|
|---|
| 866 | paste no longer mistakenly outputs 0xFF bytes for a nonempty input file
|
|---|
| 867 | without a trailing newline.
|
|---|
| 868 |
|
|---|
| 869 | `tail -n0 -f FILE' and `tail -c0 -f FILE' no longer perform what amounted
|
|---|
| 870 | to a busy wait, rather than sleeping between iterations.
|
|---|
| 871 |
|
|---|
| 872 | tail's long-undocumented --allow-missing option now elicits a warning
|
|---|
| 873 |
|
|---|
| 874 |
|
|---|
| 875 | * Major changes in release 5.0.90 (2003-07-29):
|
|---|
| 876 |
|
|---|
| 877 | ** New features
|
|---|
| 878 |
|
|---|
| 879 | sort is now up to 30% more CPU-efficient in some cases
|
|---|
| 880 |
|
|---|
| 881 | `test' is now more compatible with Bash and POSIX:
|
|---|
| 882 |
|
|---|
| 883 | `test -t', `test --help', and `test --version' now silently exit
|
|---|
| 884 | with status 0. To test whether standard output is a terminal, use
|
|---|
| 885 | `test -t 1'. To get help and version info for `test', use
|
|---|
| 886 | `[ --help' and `[ --version'.
|
|---|
| 887 |
|
|---|
| 888 | `test' now exits with status 2 (not 1) if there is an error.
|
|---|
| 889 |
|
|---|
| 890 | wc count field widths now are heuristically adjusted depending on the input
|
|---|
| 891 | size, if known. If only one count is printed, it is guaranteed to
|
|---|
| 892 | be printed without leading spaces.
|
|---|
| 893 |
|
|---|
| 894 | Previously, wc did not align the count fields if POSIXLY_CORRECT was set,
|
|---|
| 895 | but POSIX did not actually require this undesirable behavior, so it
|
|---|
| 896 | has been removed.
|
|---|
| 897 |
|
|---|
| 898 | ** Bug fixes
|
|---|
| 899 |
|
|---|
| 900 | kill no longer tries to operate on argv[0] (introduced in 5.0.1)
|
|---|
| 901 | Why wasn't this noticed? Although many tests use kill, none of
|
|---|
| 902 | them made an effort to avoid using the shell's built-in kill.
|
|---|
| 903 |
|
|---|
| 904 | `[' invoked with no arguments no longer evokes a segfault
|
|---|
| 905 |
|
|---|
| 906 | rm without --recursive (aka -r or -R) no longer prompts regarding
|
|---|
| 907 | unwritable directories, as required by POSIX.
|
|---|
| 908 |
|
|---|
| 909 | uniq -c now uses a SPACE, not a TAB between the count and the
|
|---|
| 910 | corresponding line, as required by POSIX.
|
|---|
| 911 |
|
|---|
| 912 | expr now exits with status 2 if the expression is syntactically valid,
|
|---|
| 913 | and with status 3 if an error occurred. POSIX requires this.
|
|---|
| 914 |
|
|---|
| 915 | expr now reports trouble if string comparison fails due to a collation error.
|
|---|
| 916 |
|
|---|
| 917 | split now generates suffixes properly on EBCDIC hosts.
|
|---|
| 918 |
|
|---|
| 919 | split -a0 now works, as POSIX requires.
|
|---|
| 920 |
|
|---|
| 921 | `sort --version' and `sort --help' fail, as they should
|
|---|
| 922 | when their output is redirected to /dev/full.
|
|---|
| 923 |
|
|---|
| 924 | `su --version > /dev/full' now fails, as it should.
|
|---|
| 925 |
|
|---|
| 926 | ** Fewer arbitrary limitations
|
|---|
| 927 |
|
|---|
| 928 | cut requires 97% less memory when very large field numbers or
|
|---|
| 929 | byte offsets are specified.
|
|---|
| 930 |
|
|---|
| 931 |
|
|---|
| 932 | * Major changes in release 5.0.1 (2003-07-15):
|
|---|
| 933 |
|
|---|
| 934 | ** New programs
|
|---|
| 935 | - new program: `[' (much like `test')
|
|---|
| 936 |
|
|---|
| 937 | ** New features
|
|---|
| 938 | - head now accepts --lines=-N (--bytes=-N) to print all but the
|
|---|
| 939 | N lines (bytes) at the end of the file
|
|---|
| 940 | - md5sum --check now accepts the output of the BSD md5sum program, e.g.,
|
|---|
| 941 | MD5 (f) = d41d8cd98f00b204e9800998ecf8427e
|
|---|
| 942 | - date -d DATE can now parse a DATE string like May-23-2003
|
|---|
| 943 | - chown: `.' is no longer recognized as a separator in the OWNER:GROUP
|
|---|
| 944 | specifier on POSIX 1003.1-2001 systems. If chown *was not* compiled
|
|---|
| 945 | on such a system, then it still accepts `.', by default. If chown
|
|---|
| 946 | was compiled on a POSIX 1003.1-2001 system, then you may enable the
|
|---|
| 947 | old behavior by setting _POSIX2_VERSION=199209 in your environment.
|
|---|
| 948 | - chown no longer tries to preserve set-user-ID and set-group-ID bits;
|
|---|
| 949 | on some systems, the chown syscall resets those bits, and previous
|
|---|
| 950 | versions of the chown command would call chmod to restore the original,
|
|---|
| 951 | pre-chown(2) settings, but that behavior is problematic.
|
|---|
| 952 | 1) There was a window whereby a malicious user, M, could subvert a
|
|---|
| 953 | chown command run by some other user and operating on files in a
|
|---|
| 954 | directory where M has write access.
|
|---|
| 955 | 2) Before (and even now, on systems with chown(2) that doesn't reset
|
|---|
| 956 | those bits), an unwary admin. could use chown unwittingly to create e.g.,
|
|---|
| 957 | a set-user-ID root copy of /bin/sh.
|
|---|
| 958 |
|
|---|
| 959 | ** Bug fixes
|
|---|
| 960 | - chown --dereference no longer leaks a file descriptor per symlink processed
|
|---|
| 961 | - `du /' once again prints the `/' on the last line
|
|---|
| 962 | - split's --verbose option works once again [broken in 4.5.10 and 5.0]
|
|---|
| 963 | - tail -f is no longer subject to a race condition that could make it
|
|---|
| 964 | delay displaying the last part of a file that had stopped growing. That
|
|---|
| 965 | bug could also make tail -f give an unwarranted `file truncated' warning.
|
|---|
| 966 | - du no longer runs out of file descriptors unnecessarily
|
|---|
| 967 | - df and `readlink --canonicalize' no longer corrupt the heap on
|
|---|
| 968 | non-glibc, non-solaris systems
|
|---|
| 969 | - `env -u UNSET_VARIABLE' no longer dumps core on non-glibc systems
|
|---|
| 970 | - readlink's --canonicalize option now works on systems like Solaris that
|
|---|
| 971 | lack the canonicalize_file_name function but do have resolvepath.
|
|---|
| 972 | - mv now removes `a' in this example on all systems: touch a; ln a b; mv a b
|
|---|
| 973 | This behavior is contrary to POSIX (which requires that the mv command do
|
|---|
| 974 | nothing and exit successfully), but I suspect POSIX will change.
|
|---|
| 975 | - date's %r format directive now honors locale settings
|
|---|
| 976 | - date's `-' (no-pad) format flag now affects the space-padded-by-default
|
|---|
| 977 | conversion specifiers, %e, %k, %l
|
|---|
| 978 | - fmt now diagnoses invalid obsolescent width specifications like `-72x'
|
|---|
| 979 | - fmt now exits nonzero when unable to open an input file
|
|---|
| 980 | - tsort now fails when given an odd number of input tokens,
|
|---|
| 981 | as required by POSIX. Before, it would act as if the final token
|
|---|
| 982 | appeared one additional time.
|
|---|
| 983 |
|
|---|
| 984 | ** Fewer arbitrary limitations
|
|---|
| 985 | - tail's byte and line counts are no longer limited to OFF_T_MAX.
|
|---|
| 986 | Now the limit is UINTMAX_MAX (usually 2^64).
|
|---|
| 987 | - split can now handle --bytes=N and --lines=N with N=2^31 or more.
|
|---|
| 988 |
|
|---|
| 989 | ** Portability
|
|---|
| 990 | - `kill -t' now prints signal descriptions (rather than `?') on systems
|
|---|
| 991 | like Tru64 with __sys_siglist but no strsignal function.
|
|---|
| 992 | - stat.c now compiles on Ultrix systems
|
|---|
| 993 | - sleep now works on AIX systems that lack support for clock_gettime
|
|---|
| 994 | - rm now works around Darwin6.5's broken readdir function
|
|---|
| 995 | Before `rm -rf DIR' would fail to remove all files in DIR
|
|---|
| 996 | if there were more than 338.
|
|---|
| 997 |
|
|---|
| 998 | * Major changes in release 5.0 (2003-04-02):
|
|---|
| 999 | - false --help now exits nonzero
|
|---|
| 1000 |
|
|---|
| 1001 | [4.5.12]
|
|---|
| 1002 | * printf no longer treats \x specially when POSIXLY_CORRECT is set
|
|---|
| 1003 | * printf avoids buffer overrun with format ending in a backslash and
|
|---|
| 1004 | * printf avoids buffer overrun with incomplete conversion specifier
|
|---|
| 1005 | * printf accepts multiple flags in a single conversion specifier
|
|---|
| 1006 |
|
|---|
| 1007 | [4.5.11]
|
|---|
| 1008 | * seq no longer requires that a field width be specified
|
|---|
| 1009 | * seq no longer fails when given a field width of `0'
|
|---|
| 1010 | * seq now accepts ` ' and `'' as valid format flag characters
|
|---|
| 1011 | * df now shows a HOSTNAME: prefix for each remote-mounted file system on AIX 5.1
|
|---|
| 1012 | * portability tweaks for HP-UX, AIX 5.1, DJGPP
|
|---|
| 1013 |
|
|---|
| 1014 | [4.5.10]
|
|---|
| 1015 | * printf no longer segfaults for a negative field width or precision
|
|---|
| 1016 | * shred now always enables --exact for non-regular files
|
|---|
| 1017 | * du no longer lists hard-linked files more than once
|
|---|
| 1018 | * du no longer dumps core on some systems due to `infinite' recursion
|
|---|
| 1019 | via nftw's use of the buggy replacement function in getcwd.c
|
|---|
| 1020 | * portability patches for a few vendor compilers and 64-bit systems
|
|---|
| 1021 | * du -S *really* now works like it did before the change in 4.5.5
|
|---|
| 1022 |
|
|---|
| 1023 | [4.5.9]
|
|---|
| 1024 | * du no longer truncates file sizes or sums to fit in 32-bit size_t
|
|---|
| 1025 | * work around Linux kernel bug in getcwd (fixed in 2.4.21-pre4), so that pwd
|
|---|
| 1026 | now fails if the name of the working directory is so long that getcwd
|
|---|
| 1027 | truncates it. Before it would print the truncated name and exit successfully.
|
|---|
| 1028 | * `df /some/mount-point' no longer hangs on a GNU libc system when another
|
|---|
| 1029 | hard-mounted NFS file system (preceding /some/mount-point in /proc/mounts)
|
|---|
| 1030 | is inaccessible.
|
|---|
| 1031 | * rm -rf now gives an accurate diagnostic when failing to remove a file
|
|---|
| 1032 | under certain unusual conditions
|
|---|
| 1033 | * mv and `cp --preserve=links' now preserve multiple hard links even under
|
|---|
| 1034 | certain unusual conditions where they used to fail
|
|---|
| 1035 |
|
|---|
| 1036 | [4.5.8]
|
|---|
| 1037 | * du -S once again works like it did before the change in 4.5.5
|
|---|
| 1038 | * stat accepts a new file format, %B, for the size of each block reported by %b
|
|---|
| 1039 | * du accepts new option: --apparent-size
|
|---|
| 1040 | * du --bytes (-b) works the same way it did in fileutils-3.16 and before
|
|---|
| 1041 | * du reports proper sizes for directories (not zero) (broken in 4.5.6 or 4.5.7)
|
|---|
| 1042 | * df now always displays under `Filesystem', the device file name
|
|---|
| 1043 | corresponding to the listed mount point. Before, for a block- or character-
|
|---|
| 1044 | special file command line argument, df would display that argument. E.g.,
|
|---|
| 1045 | `df /dev/hda' would list `/dev/hda' as the `Filesystem', rather than say
|
|---|
| 1046 | /dev/hda3 (the device on which `/' is mounted), as it does now.
|
|---|
| 1047 | * test now works properly when invoked from a set user ID or set group ID
|
|---|
| 1048 | context and when testing access to files subject to alternate protection
|
|---|
| 1049 | mechanisms. For example, without this change, a set-UID program that invoked
|
|---|
| 1050 | `test -w F' (to see if F is writable) could mistakenly report that it *was*
|
|---|
| 1051 | writable, even though F was on a read-only file system, or F had an ACL
|
|---|
| 1052 | prohibiting write access, or F was marked as immutable.
|
|---|
| 1053 |
|
|---|
| 1054 | [4.5.7]
|
|---|
| 1055 | * du would fail with more than one DIR argument when any but the last did not
|
|---|
| 1056 | contain a slash (due to a bug in ftw.c)
|
|---|
| 1057 |
|
|---|
| 1058 | [4.5.6]
|
|---|
| 1059 | * du no longer segfaults on Solaris systems (fixed heap-corrupting bug in ftw.c)
|
|---|
| 1060 | * du --exclude=FILE works once again (this was broken by the rewrite for 4.5.5)
|
|---|
| 1061 | * du no longer gets a failed assertion for certain hierarchy lay-outs
|
|---|
| 1062 | involving hard-linked directories
|
|---|
| 1063 | * `who -r' no longer segfaults when using non-C-locale messages
|
|---|
| 1064 | * df now displays a mount point (usually `/') for non-mounted
|
|---|
| 1065 | character-special and block files
|
|---|
| 1066 |
|
|---|
| 1067 | [4.5.5]
|
|---|
| 1068 | * ls --dired produces correct byte offset for file names containing
|
|---|
| 1069 | nonprintable characters in a multibyte locale
|
|---|
| 1070 | * du has been rewritten to use a variant of GNU libc's ftw.c
|
|---|
| 1071 | * du now counts the space associated with a directory's directory entry,
|
|---|
| 1072 | even if it cannot list or chdir into that subdirectory.
|
|---|
| 1073 | * du -S now includes the st_size of each entry corresponding to a subdirectory
|
|---|
| 1074 | * rm on FreeBSD can once again remove directories from NFS-mounted file systems
|
|---|
| 1075 | * ls has a new option --dereference-command-line-symlink-to-dir, which
|
|---|
| 1076 | corresponds to the new default behavior when none of -d, -l -F, -H, -L
|
|---|
| 1077 | has been specified.
|
|---|
| 1078 | * ls dangling-symlink now prints `dangling-symlink'.
|
|---|
| 1079 | Before, it would fail with `no such file or directory'.
|
|---|
| 1080 | * ls -s symlink-to-non-dir and ls -i symlink-to-non-dir now print
|
|---|
| 1081 | attributes of `symlink', rather than attributes of their referents.
|
|---|
| 1082 | * Fix a bug introduced in 4.5.4 that made it so that ls --color would no
|
|---|
| 1083 | longer highlight the names of files with the execute bit set when not
|
|---|
| 1084 | specified on the command line.
|
|---|
| 1085 | * shred's --zero (-z) option no longer gobbles up any following argument.
|
|---|
| 1086 | Before, `shred --zero file' would produce `shred: missing file argument',
|
|---|
| 1087 | and worse, `shred --zero f1 f2 ...' would appear to work, but would leave
|
|---|
| 1088 | the first file untouched.
|
|---|
| 1089 | * readlink: new program
|
|---|
| 1090 | * cut: new feature: when used to select ranges of byte offsets (as opposed
|
|---|
| 1091 | to ranges of fields) and when --output-delimiter=STRING is specified,
|
|---|
| 1092 | output STRING between ranges of selected bytes.
|
|---|
| 1093 | * rm -r can no longer be tricked into mistakenly reporting a cycle.
|
|---|
| 1094 | * when rm detects a directory cycle, it no longer aborts the entire command,
|
|---|
| 1095 | but rather merely stops processing the affected command line argument.
|
|---|
| 1096 |
|
|---|
| 1097 | [4.5.4]
|
|---|
| 1098 | * cp no longer fails to parse options like this: --preserve=mode,ownership
|
|---|
| 1099 | * `ls --color -F symlink-to-dir' works properly
|
|---|
| 1100 | * ls is much more efficient on directories with valid dirent.d_type.
|
|---|
| 1101 | * stty supports all baud rates defined in linux-2.4.19.
|
|---|
| 1102 | * `du symlink-to-dir/' would improperly remove the trailing slash
|
|---|
| 1103 | * `du ""' would evoke a bounds violation.
|
|---|
| 1104 | * In the unlikely event that running `du /' resulted in `stat ("/", ...)'
|
|---|
| 1105 | failing, du would give a diagnostic about `' (empty string) rather than `/'.
|
|---|
| 1106 | * printf: a hexadecimal escape sequence has at most two hex. digits, not three.
|
|---|
| 1107 | * The following features have been added to the --block-size option
|
|---|
| 1108 | and similar environment variables of df, du, and ls.
|
|---|
| 1109 | - A leading "'" generates numbers with thousands separators.
|
|---|
| 1110 | For example:
|
|---|
| 1111 | $ ls -l --block-size="'1" file
|
|---|
| 1112 | -rw-rw-r-- 1 eggert src 47,483,707 Sep 24 23:40 file
|
|---|
| 1113 | - A size suffix without a leading integer generates a suffix in the output.
|
|---|
| 1114 | For example:
|
|---|
| 1115 | $ ls -l --block-size="K"
|
|---|
| 1116 | -rw-rw-r-- 1 eggert src 46371K Sep 24 23:40 file
|
|---|
| 1117 | * ls's --block-size option now affects file sizes in all cases, not
|
|---|
| 1118 | just for --block-size=human-readable and --block-size=si. Fractional
|
|---|
| 1119 | sizes are now always rounded up, for consistency with df and du.
|
|---|
| 1120 | * df now displays the block size using powers of 1000 if the requested
|
|---|
| 1121 | block size seems to be a multiple of a power of 1000.
|
|---|
| 1122 | * nl no longer gets a segfault when run like this `yes|nl -s%n'
|
|---|
| 1123 |
|
|---|
| 1124 | [4.5.3]
|
|---|
| 1125 | * du --dereference-args (-D) no longer fails in certain cases
|
|---|
| 1126 | * `ln --target-dir=DIR' no longer fails when given a single argument
|
|---|
| 1127 |
|
|---|
| 1128 | [4.5.2]
|
|---|
| 1129 | * `rm -i dir' (without --recursive (-r)) no longer recurses into dir
|
|---|
| 1130 | * `tail -c N FILE' now works with files of size >= 4GB
|
|---|
| 1131 | * `mkdir -p' can now create very deep (e.g. 40,000-component) directories
|
|---|
| 1132 | * rmdir -p dir-with-trailing-slash/ no longer fails
|
|---|
| 1133 | * printf now honors the `--' command line delimiter
|
|---|
| 1134 | * od's 8-byte formats x8, o8, and u8 now work
|
|---|
| 1135 | * tail now accepts fractional seconds for its --sleep-interval=S (-s) option
|
|---|
| 1136 |
|
|---|
| 1137 | [4.5.1]
|
|---|
| 1138 | * du and ls now report sizes of symbolic links (before they'd always report 0)
|
|---|
| 1139 | * uniq now obeys the LC_COLLATE locale, as per POSIX 1003.1-2001 TC1.
|
|---|
| 1140 |
|
|---|
| 1141 | ========================================================================
|
|---|
| 1142 | Here are the NEWS entries made from fileutils-4.1 until the
|
|---|
| 1143 | point at which the packages merged to form the coreutils:
|
|---|
| 1144 |
|
|---|
| 1145 | [4.1.11]
|
|---|
| 1146 | * `rm symlink-to-unwritable' doesn't prompt [introduced in 4.1.10]
|
|---|
| 1147 | [4.1.10]
|
|---|
| 1148 | * rm once again gives a reasonable diagnostic when failing to remove a file
|
|---|
| 1149 | owned by someone else in a sticky directory [introduced in 4.1.9]
|
|---|
| 1150 | * df now rounds all quantities up, as per POSIX.
|
|---|
| 1151 | * New ls time style: long-iso, which generates YYYY-MM-DD HH:MM.
|
|---|
| 1152 | * Any time style can be preceded by "posix-"; this causes "ls" to
|
|---|
| 1153 | use traditional timestamp format when in the POSIX locale.
|
|---|
| 1154 | * The default time style is now posix-long-iso instead of posix-iso.
|
|---|
| 1155 | Set TIME_STYLE="posix-iso" to revert to the behavior of 4.1.1 thru 4.1.9.
|
|---|
| 1156 | * `rm dangling-symlink' doesn't prompt [introduced in 4.1.9]
|
|---|
| 1157 | * stat: remove support for --secure/-s option and related %S and %C format specs
|
|---|
| 1158 | * stat: rename --link/-l to --dereference/-L.
|
|---|
| 1159 | The old options will continue to work for a while.
|
|---|
| 1160 | [4.1.9]
|
|---|
| 1161 | * rm can now remove very deep hierarchies, in spite of any limit on stack size
|
|---|
| 1162 | * new programs: link, unlink, and stat
|
|---|
| 1163 | * New ls option: --author (for the Hurd).
|
|---|
| 1164 | * `touch -c no-such-file' no longer fails, per POSIX
|
|---|
| 1165 | [4.1.8]
|
|---|
| 1166 | * mv no longer mistakenly creates links to preexisting destination files
|
|---|
| 1167 | that aren't moved
|
|---|
| 1168 | [4.1.7]
|
|---|
| 1169 | * rm: close a hole that would allow a running rm process to be subverted
|
|---|
| 1170 | [4.1.6]
|
|---|
| 1171 | * New cp option: --copy-contents.
|
|---|
| 1172 | * cp -r is now equivalent to cp -R. Use cp -R -L --copy-contents to get the
|
|---|
| 1173 | traditional (and rarely desirable) cp -r behavior.
|
|---|
| 1174 | * ls now accepts --time-style=+FORMAT, where +FORMAT works like date's format
|
|---|
| 1175 | * The obsolete usage `touch [-acm] MMDDhhmm[YY] FILE...' is no longer
|
|---|
| 1176 | supported on systems conforming to POSIX 1003.1-2001. Use touch -t instead.
|
|---|
| 1177 | * cp and inter-partition mv no longer give a misleading diagnostic in some
|
|---|
| 1178 | unusual cases
|
|---|
| 1179 | [4.1.5]
|
|---|
| 1180 | * cp -r no longer preserves symlinks
|
|---|
| 1181 | * The block size notation is now compatible with SI and with IEC 60027-2.
|
|---|
| 1182 | For example, --block-size=1MB now means --block-size=1000000,
|
|---|
| 1183 | whereas --block-size=1MiB now means --block-size=1048576.
|
|---|
| 1184 | A missing `B' (e.g. `1M') has the same meaning as before.
|
|---|
| 1185 | A trailing `B' now means decimal, not binary; this is a silent change.
|
|---|
| 1186 | The nonstandard `D' suffix (e.g. `1MD') is now obsolescent.
|
|---|
| 1187 | * -H or --si now outputs the trailing 'B', for consistency with the above.
|
|---|
| 1188 | * Programs now output trailing 'K' (not 'k') to mean 1024, as per IEC 60027-2.
|
|---|
| 1189 | * New df, du short option -B is short for --block-size.
|
|---|
| 1190 | * You can omit an integer `1' before a block size suffix,
|
|---|
| 1191 | e.g. `df -BG' is equivalent to `df -B 1G' and to `df --block-size=1G'.
|
|---|
| 1192 | * The following options are now obsolescent, as their names are
|
|---|
| 1193 | incompatible with IEC 60027-2:
|
|---|
| 1194 | df, du: -m or --megabytes (use -BM or --block-size=1M)
|
|---|
| 1195 | df, du, ls: --kilobytes (use --block-size=1K)
|
|---|
| 1196 | [4.1.4]
|
|---|
| 1197 | * df --local no longer lists smbfs file systems whose name starts with //
|
|---|
| 1198 | * dd now detects the Linux/tape/lseek bug at run time and warns about it.
|
|---|
| 1199 | [4.1.3]
|
|---|
| 1200 | * ls -R once again outputs a blank line between per-directory groups of files.
|
|---|
| 1201 | This was broken by the cycle-detection change in 4.1.1.
|
|---|
| 1202 | * dd once again uses `lseek' on character devices like /dev/mem and /dev/kmem.
|
|---|
| 1203 | On systems with the linux kernel (at least up to 2.4.16), dd must still
|
|---|
| 1204 | resort to emulating `skip=N' behavior using reads on tape devices, because
|
|---|
| 1205 | lseek has no effect, yet appears to succeed. This may be a kernel bug.
|
|---|
| 1206 | [4.1.2]
|
|---|
| 1207 | * cp no longer fails when two or more source files are the same;
|
|---|
| 1208 | now it just gives a warning and doesn't copy the file the second time.
|
|---|
| 1209 | E.g., cp a a d/ produces this:
|
|---|
| 1210 | cp: warning: source file `a' specified more than once
|
|---|
| 1211 | * chmod would set the wrong bit when given symbolic mode strings like
|
|---|
| 1212 | these: g=o, o=g, o=u. E.g., `chmod a=,o=w,ug=o f' would give a mode
|
|---|
| 1213 | of --w-r---w- rather than --w--w--w-.
|
|---|
| 1214 | [4.1.1]
|
|---|
| 1215 | * mv (likewise for cp), now fails rather than silently clobbering one of
|
|---|
| 1216 | the source files in the following example:
|
|---|
| 1217 | rm -rf a b c; mkdir a b c; touch a/f b/f; mv a/f b/f c
|
|---|
| 1218 | * ls -R detects directory cycles, per POSIX. It warns and doesn't infloop.
|
|---|
| 1219 | * cp's -P option now means the same as --no-dereference, per POSIX.
|
|---|
| 1220 | Use --parents to get the old meaning.
|
|---|
| 1221 | * When copying with the -H and -L options, cp can preserve logical
|
|---|
| 1222 | links between source files with --preserve=links
|
|---|
| 1223 | * cp accepts new options:
|
|---|
| 1224 | --preserve[={mode,ownership,timestamps,links,all}]
|
|---|
| 1225 | --no-preserve={mode,ownership,timestamps,links,all}
|
|---|
| 1226 | * cp's -p and --preserve options remain unchanged and are equivalent
|
|---|
| 1227 | to `--preserve=mode,ownership,timestamps'
|
|---|
| 1228 | * mv and cp accept a new option: --reply={yes,no,query}; provides a consistent
|
|---|
| 1229 | mechanism to control whether one is prompted about certain existing
|
|---|
| 1230 | destination files. Note that cp's and mv's -f options don't have the
|
|---|
| 1231 | same meaning: cp's -f option no longer merely turns off `-i'.
|
|---|
| 1232 | * remove portability limitations (e.g., PATH_MAX on the Hurd, fixes for
|
|---|
| 1233 | 64-bit systems)
|
|---|
| 1234 | * mv now prompts before overwriting an existing, unwritable destination file
|
|---|
| 1235 | when stdin is a tty, unless --force (-f) is specified, as per POSIX.
|
|---|
| 1236 | * mv: fix the bug whereby `mv -uf source dest' would delete source,
|
|---|
| 1237 | even though it's older than dest.
|
|---|
| 1238 | * chown's --from=CURRENT_OWNER:CURRENT_GROUP option now works
|
|---|
| 1239 | * cp now ensures that the set-user-ID and set-group-ID bits are cleared for
|
|---|
| 1240 | the destination file when when copying and not preserving permissions.
|
|---|
| 1241 | * `ln -f --backup k k' gives a clearer diagnostic
|
|---|
| 1242 | * ls no longer truncates user names or group names that are longer
|
|---|
| 1243 | than 8 characters.
|
|---|
| 1244 | * ls's new --dereference-command-line option causes it to dereference
|
|---|
| 1245 | symbolic links on the command-line only. It is the default unless
|
|---|
| 1246 | one of the -d, -F, or -l options are given.
|
|---|
| 1247 | * ls -H now means the same as ls --dereference-command-line, as per POSIX.
|
|---|
| 1248 | * ls -g now acts like ls -l, except it does not display owner, as per POSIX.
|
|---|
| 1249 | * ls -n now implies -l, as per POSIX.
|
|---|
| 1250 | * ls can now display dates and times in one of four time styles:
|
|---|
| 1251 |
|
|---|
| 1252 | - The `full-iso' time style gives full ISO-style time stamps like
|
|---|
| 1253 | `2001-05-14 23:45:56.477817180 -0700'.
|
|---|
| 1254 | - The 'iso' time style gives ISO-style time stamps like '2001-05-14 '
|
|---|
| 1255 | and '05-14 23:45'.
|
|---|
| 1256 | - The 'locale' time style gives locale-dependent time stamps like
|
|---|
| 1257 | 'touko 14 2001' and 'touko 14 23:45' (in a Finnish locale).
|
|---|
| 1258 | - The 'posix-iso' time style gives traditional POSIX-locale
|
|---|
| 1259 | time stamps like 'May 14 2001' and 'May 14 23:45' unless the user
|
|---|
| 1260 | specifies a non-POSIX locale, in which case it uses ISO-style dates.
|
|---|
| 1261 | This is the default.
|
|---|
| 1262 |
|
|---|
| 1263 | You can specify a time style with an option like --time-style='iso'
|
|---|
| 1264 | or with an environment variable like TIME_STYLE='iso'. GNU Emacs 21
|
|---|
| 1265 | and later can parse ISO dates, but older Emacs versions cannot, so
|
|---|
| 1266 | if you are using an older version of Emacs outside the default POSIX
|
|---|
| 1267 | locale, you may need to set TIME_STYLE="locale".
|
|---|
| 1268 |
|
|---|
| 1269 | * --full-time is now an alias for "-l --time-style=full-iso".
|
|---|
| 1270 |
|
|---|
| 1271 |
|
|---|
| 1272 | ========================================================================
|
|---|
| 1273 | Here are the NEWS entries made from sh-utils-2.0 until the
|
|---|
| 1274 | point at which the packages merged to form the coreutils:
|
|---|
| 1275 |
|
|---|
| 1276 | [2.0.15]
|
|---|
| 1277 | * date no longer accepts e.g., September 31 in the MMDDhhmm syntax
|
|---|
| 1278 | * fix a bug in this package's .m4 files and in configure.ac
|
|---|
| 1279 | [2.0.14]
|
|---|
| 1280 | * nohup's behavior is changed as follows, to conform to POSIX 1003.1-2001:
|
|---|
| 1281 | - nohup no longer adjusts scheduling priority; use "nice" for that.
|
|---|
| 1282 | - nohup now redirects stderr to stdout, if stderr is not a terminal.
|
|---|
| 1283 | - nohup exit status is now 126 if command was found but not invoked,
|
|---|
| 1284 | 127 if nohup failed or if command was not found.
|
|---|
| 1285 | [2.0.13]
|
|---|
| 1286 | * uname and uptime work better on *BSD systems
|
|---|
| 1287 | * pathchk now exits nonzero for a path with a directory component
|
|---|
| 1288 | that specifies a non-directory
|
|---|
| 1289 | [2.0.12]
|
|---|
| 1290 | * kill: new program
|
|---|
| 1291 | * who accepts new options: --all (-a), --boot (-b), --dead (-d), --login,
|
|---|
| 1292 | --process (-p), --runlevel (-r), --short (-s), --time (-t), --users (-u).
|
|---|
| 1293 | The -u option now produces POSIX-specified results and is the same as
|
|---|
| 1294 | the long option `--users'. --idle is no longer the same as -u.
|
|---|
| 1295 | * The following changes apply on systems conforming to POSIX 1003.1-2001:
|
|---|
| 1296 | - `date -I' is no longer supported. Instead, use `date --iso-8601'.
|
|---|
| 1297 | - `nice -NUM' is no longer supported. Instead, use `nice -n NUM'.
|
|---|
| 1298 | [This change was reverted in coreutils 5.3.1.]
|
|---|
| 1299 | * New 'uname' options -i or --hardware-platform, and -o or --operating-system.
|
|---|
| 1300 | 'uname -a' now outputs -i and -o information at the end.
|
|---|
| 1301 | New uname option --kernel-version is an alias for -v.
|
|---|
| 1302 | Uname option --release has been renamed to --kernel-release,
|
|---|
| 1303 | and --sysname has been renamed to --kernel-name;
|
|---|
| 1304 | the old options will work for a while, but are no longer documented.
|
|---|
| 1305 | * 'expr' now uses the LC_COLLATE locale for string comparison, as per POSIX.
|
|---|
| 1306 | * 'expr' now requires '+' rather than 'quote' to quote tokens;
|
|---|
| 1307 | this removes an incompatibility with POSIX.
|
|---|
| 1308 | * date -d 'last friday' would print a date/time that was one hour off
|
|---|
| 1309 | (e.g., 23:00 on *thursday* rather than 00:00 of the preceding friday)
|
|---|
| 1310 | when run such that the current time and the target date/time fall on
|
|---|
| 1311 | opposite sides of a daylight savings time transition.
|
|---|
| 1312 | This problem arose only with relative date strings like `last monday'.
|
|---|
| 1313 | It was not a problem with strings that include absolute dates.
|
|---|
| 1314 | * factor is twice as fast, for large numbers
|
|---|
| 1315 | [2.0.11]
|
|---|
| 1316 | * setting the date now works properly, even when using -u
|
|---|
| 1317 | * `date -f - < /dev/null' no longer dumps core
|
|---|
| 1318 | * some DOS/Windows portability changes
|
|---|
| 1319 | [2.0j]
|
|---|
| 1320 | * `date -d DATE' now parses certain relative DATEs correctly
|
|---|
| 1321 | [2.0i]
|
|---|
| 1322 | * fixed a bug introduced in 2.0h that made many programs fail with a
|
|---|
| 1323 | `write error' when invoked with the --version option
|
|---|
| 1324 | [2.0h]
|
|---|
| 1325 | * all programs fail when printing --help or --version output to a full device
|
|---|
| 1326 | * printf exits nonzero upon write failure
|
|---|
| 1327 | * yes now detects and terminates upon write failure
|
|---|
| 1328 | * date --rfc-822 now always emits day and month names from the `C' locale
|
|---|
| 1329 | * portability tweaks for Solaris8, Ultrix, and DOS
|
|---|
| 1330 | [2.0g]
|
|---|
| 1331 | * date now handles two-digit years with leading zeros correctly.
|
|---|
| 1332 | * printf interprets unicode, \uNNNN \UNNNNNNNN, on systems with the
|
|---|
| 1333 | required support; from Bruno Haible.
|
|---|
| 1334 | * stty's rprnt attribute now works on HPUX 10.20
|
|---|
| 1335 | * seq's --equal-width option works more portably
|
|---|
| 1336 | [2.0f]
|
|---|
| 1337 | * fix build problems with ut_name vs. ut_user
|
|---|
| 1338 | [2.0e]
|
|---|
| 1339 | * stty: fix long-standing bug that caused test failures on at least HPUX
|
|---|
| 1340 | systems when COLUMNS was set to zero
|
|---|
| 1341 | * still more portability fixes
|
|---|
| 1342 | * unified lib/: now that directory and most of the configuration framework
|
|---|
| 1343 | is common between fileutils, textutils, and sh-utils
|
|---|
| 1344 | [2.0d]
|
|---|
| 1345 | * fix portability problem with sleep vs lib/strtod.c's requirement for -lm
|
|---|
| 1346 | [2.0c]
|
|---|
| 1347 | * fix portability problems with nanosleep.c and with the new code in sleep.c
|
|---|
| 1348 | [2.0b]
|
|---|
| 1349 | * Regenerate lib/Makefile.in so that nanosleep.c is distributed.
|
|---|
| 1350 | [2.0a]
|
|---|
| 1351 | * sleep accepts floating point arguments on command line
|
|---|
| 1352 | * sleep's clock continues counting down when sleep is suspended
|
|---|
| 1353 | * when a suspended sleep process is resumed, it continues sleeping if
|
|---|
| 1354 | there is any time remaining
|
|---|
| 1355 | * who once again prints whatever host information it has, even without --lookup
|
|---|
| 1356 |
|
|---|
| 1357 | ========================================================================
|
|---|
| 1358 | For older NEWS entries for the fileutils, textutils, and sh-utils
|
|---|
| 1359 | packages, see ./old/*/NEWS.
|
|---|
| 1360 |
|
|---|
| 1361 | This package began as the union of the following:
|
|---|
| 1362 | textutils-2.1, fileutils-4.1.11, sh-utils-2.0.15.
|
|---|