mirror of
https://https.git.savannah.gnu.org/git/findutils.git
synced 2026-01-26 15:39:06 +00:00
2105 lines
77 KiB
Plaintext
2105 lines
77 KiB
Plaintext
GNU findutils NEWS - User visible changes. -*- outline -*- (allout)
|
||
|
||
* Major changes in release 4.7.0-git, YYYY-MM-DD
|
||
|
||
** Changes to locate / updatedb
|
||
|
||
Support for generating old-format databases (with updatedb
|
||
--old-format or updatedb --dbformat=old) has been removed. The old
|
||
database format was deprecated in 2007 (and updatedb has warned about
|
||
this since that time). The locate program will will read old-format
|
||
databases, though this support also will be removed.
|
||
|
||
The updatedb script now operates in the C locale only. This means
|
||
that character encoding issues are now not likely to cause sort to
|
||
fail. It also honours the TMPDIR environment variable if that was
|
||
set, and no longer sorts file names case-insensitively.
|
||
|
||
The (unspecified) order in which filenames are stored in the locate
|
||
database is now different to previous versions. However, you should
|
||
not rely on locate's output appearing in any particular order in any
|
||
case.
|
||
|
||
** Improvements
|
||
|
||
All utilities now only show the full usage text when requested via
|
||
the --help option. Previously, when the user passed invalid options
|
||
or arguments, the user's attention to the corresponding error
|
||
diagnostic was distracted by that lengthy text.
|
||
|
||
find now accepts multiple file type arguments to the -type and -xtype
|
||
options separated by comma ','. For example, to search for symbolic
|
||
links and directories simply provide the shorter '-type l,d' instead
|
||
of the - yet more portable - '( -type l -o -type d )'.
|
||
|
||
find now diagnoses failures returned by readdir(). This bug was inherent
|
||
in the use of FTS.
|
||
|
||
** Bug Fixes
|
||
|
||
#48180: find -noop (an internal option not intended to be exposed to the user)
|
||
no longer crashes. Bug introduced in FINDUTILS-4.3.1.
|
||
|
||
#48030: find -exec + does not pass all arguments for certain specific filename
|
||
lengths. After the internal (usually 128k) buffer is full and find(1)
|
||
executed the given command with these arguments, it would miss to run
|
||
the command yet another time if only one other file argument has to be
|
||
processed. Bug introduced in FINDUTILS-4.2.12.
|
||
|
||
#46784: frcode drops last char if no final newline
|
||
|
||
** Translations
|
||
|
||
Updated translations: Hungarian, Slovak, Dutch, German, Danish,
|
||
Greek, Bulgarian.
|
||
|
||
** Changes to the build process
|
||
|
||
The configure option --enable-id-cache has been removed. It has been
|
||
a no-op since findnutils-4.5.15.
|
||
|
||
The configure option --enable-debug has been removed. Debugging in
|
||
find is now controlled by its -D option only.
|
||
|
||
"make dist" no longer builds .tar.gz files.
|
||
xz is portable enough and in wide-enough use that distributing
|
||
only .tar.xz files is enough.
|
||
|
||
* Major changes in release 4.6.0, 2015-12-28
|
||
|
||
** Stable Release
|
||
|
||
This is the first stable release since findutils-4.4.2. The entries
|
||
below in this file detail the changes that have occurred since release
|
||
4.3.13 (which is the common ancestor of this release and
|
||
findutils-4.4.0). This release includes all the bug fixes
|
||
incorporated into the 4.4.x release series, since those bug fixes were
|
||
also applied to the 4.5.x release series.
|
||
|
||
** Summary of Changes
|
||
|
||
The most significant changes since the 4.4.2 release are:
|
||
|
||
1. Some backward-incompatible changes have been made to find:
|
||
- egrep regular expressions now work like GNU grep -E
|
||
- Minor changes to the way nanoseconds fields are printed
|
||
- find -perm +mode is now fully POSIX compliant (if you want the old
|
||
behaviour use -perm /mode).
|
||
- find -perm +numeric_mode is not supported any more. This syntax is
|
||
unspecified by POSIX. The prior functionality continues to be
|
||
available with -perm /numeric_mode. For more details see Savannah
|
||
bug #38474.
|
||
|
||
2. Some backward-incompatible changes have been made to xargs:
|
||
- if the child exits with status 126 or 127, xargs exits with status
|
||
123.
|
||
|
||
3. There are also a large number of bugfixes, performance enhancements
|
||
and documentation improvements, as detailed below.
|
||
|
||
4. The "oldfind" binary is no longer installed.
|
||
|
||
** Translations
|
||
|
||
Updated the Danish translation.
|
||
|
||
* Major changes in release 4.5.19, 2015-12-28
|
||
|
||
** Bug Fixes:
|
||
|
||
Applied patch #8688: Spelling fixes.
|
||
|
||
* Major changes in release 4.5.18, 2015-12-27
|
||
|
||
** Changes to find
|
||
|
||
Only the ftsfind binary will be installed, as "find". Installing
|
||
oldfind, under any name, is no longer supported. The configure option
|
||
--with-fts is still allowed, but trying to use it to enable the
|
||
installation of oldfind (for example by using --with-fts=no) results
|
||
in configure stopping with an error message.
|
||
|
||
** Translations
|
||
|
||
Updated the Slovenian translation.
|
||
|
||
* Major changes in release 4.5.17, 2015-12-24
|
||
|
||
** Future Changes to Release Signing Keys
|
||
|
||
Future findutils releases will be signed with a new GPG key, though
|
||
this release will be signed with the existing key. Here are the old
|
||
and new key fingerprints:
|
||
|
||
pub 1024R/64A95EE5 1996-04-04
|
||
Key fingerprint = 0C 1C D7 CA 66 33 D2 E9 14 E0 5F 16 D5 24 60 E9
|
||
uid James Youngman <jay@gnu.org>
|
||
uid James Youngman <JYoungman@vggas.com>
|
||
|
||
pub 4096R/C5DDACB9 2015-12-24
|
||
Key fingerprint = 0CF4 E8D8 7159 3224 8428 32B8 88DD 9E08 C5DD ACB9
|
||
uid James Youngman <james@youngman.org>
|
||
uid James Youngman <jay@gnu.org>
|
||
sub 4096R/771CE15D 2015-12-24
|
||
|
||
** Functional changes to find
|
||
When the POSIXLY_CORRECT environment variable is set, a warning is no
|
||
longer issued when '/' is found in the argument to -name. Use of
|
||
POSIXLY_CORRECT also turns off warnings about use of the deprecated
|
||
option -d and the use of global options in surprising positions.
|
||
|
||
** Documentation Changes
|
||
The EXPRESSION section of the find manpage is now organised somewhat
|
||
more clearly. The -regextype option is now correctly documented as
|
||
being positional.
|
||
|
||
** Bug Fixes:
|
||
When the -a option of xargs is used, xargs no longer leaks a file
|
||
descriptor (fixing a bug reported by Kyle Sallee).
|
||
|
||
** Translations
|
||
|
||
Updated the Brazilian Portuguese and Serbian translations.
|
||
|
||
* Major changes in release 4.5.16, 2015-12-23
|
||
|
||
** Functional Changes to find
|
||
Using -regextype egrep now has the same effect as -regextype
|
||
posix-egrep. This is the result of a change to gnulib to bring it
|
||
into line with GNU grep (see
|
||
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20974#22).
|
||
|
||
** Translations
|
||
Updated translations: Estonian, Swedish, Polish, Vietnamese, Ukranian,
|
||
Norwegian Bokmaal, Czech, Russian, French, Hungarian.
|
||
|
||
** Bug Fixes:
|
||
#46715: testsuite error with perl 5.22, gnulib outdated
|
||
|
||
#40146: gnulib revision doesn't support musl libc
|
||
|
||
* Major changes in release 4.5.15, 2015-12-18
|
||
|
||
** Bug Fixes
|
||
#45780: inode column is badly aligned when running 'find <dir> -ls'
|
||
|
||
#45585: unclear description of -newerXY in manual page.
|
||
|
||
#45505: give a more explicit error message when the argument to -regex
|
||
is not a valid regular expression.
|
||
|
||
#45090: oldfind incorrectly omits test/..test (or any file whose name
|
||
begins with ..).
|
||
|
||
#45065: find incorrectly prints a leading zero on the fractional part
|
||
of ctime timestamps
|
||
|
||
#45064: Use of [[ ... ]] in /bin/sh script is incorrect
|
||
|
||
#45062: Enabling CACHE_IDS causes segfaults (this bug affects many
|
||
historic releases, probably since release 3.0 in 1991). You
|
||
would not have been affected by this problem unless you used
|
||
the option --enable-id-cache when invoking confgure.
|
||
|
||
#42903: checklists.py now supports Python 3.
|
||
|
||
#40805: The locatedb manual page uses now troff symbols where
|
||
appropriate.
|
||
|
||
** Translations
|
||
|
||
Updated the German translation.
|
||
|
||
* Major changes in release 4.5.14, 2014-07-19
|
||
|
||
** Bug Fixes
|
||
|
||
#42793: "Failed to write output" with -ls (this bug affected only
|
||
release 4.5.13).
|
||
|
||
* Major changes in release 4.5.13, 2014-07-16
|
||
|
||
** Documentation Changes
|
||
|
||
Some minor documentation improvements are listed in "Bug Fixes" below.
|
||
|
||
** Bug Fixes
|
||
|
||
#40339: Fix leaked directory handle when listing mounted file
|
||
systems.
|
||
|
||
#40094: The xargs --help output has a small number of cosmetic
|
||
improvements.
|
||
|
||
#39197: Small fix to find's manual page to remove an unwanted
|
||
backslash, which made the troff incompatible with Eric
|
||
Raymond's doclifter software.
|
||
|
||
#39162: -printf reads beyond arguments terminated by \
|
||
|
||
#35753: Check the success/failure of material I/O operations where
|
||
these are important to the use of the output (i.e. check the
|
||
output for "find -ok" but not debugging output).
|
||
|
||
#31005: The find manual page and Texinfo manual now more clearly state
|
||
that -exec ... + always returns true.
|
||
|
||
|
||
** Translations
|
||
|
||
Updated translations: Estonian, Polish, Ukranian.
|
||
|
||
|
||
* Major changes in release 4.5.12, 2013-09-22
|
||
|
||
** Functional Changes to find
|
||
|
||
The GNU extension "find ... -perm /MODE" is no longer disabled when
|
||
the POSIXLY_CORRECT environment variable is set.
|
||
|
||
The obsolete GNU extension "find ... -perm +MODE", which was withdrawn
|
||
in release 4.2.21 in 2005 due to compatibility problems, has been
|
||
completely removed. Use "find ... -perm /MODE" instead.
|
||
|
||
** Documentation Changes
|
||
|
||
If you use -type or -xtype with a type letter corresponding to a file
|
||
type which is not supported by the system on which find was compiled,
|
||
find will now give a clearer error message (though the functionality
|
||
is unchanged). Type letters are affected are D, l and p (for Solaris
|
||
Doors, symbolic links and named pipes respectively).
|
||
|
||
The output of xargs --help has been slightly changed for greater
|
||
clarity.
|
||
|
||
The documentation for xargs now warns about parallel processes (xargs
|
||
-P) sharing stdout.
|
||
|
||
The documentation for find -execdir now describes correctly that the
|
||
command will be executed in the same directory as the file we were
|
||
considering at the time. The documentation previously (and
|
||
incorrectly) stated that the original working directory of find would
|
||
be used.
|
||
|
||
** Bug Fixes
|
||
|
||
Some bugs in 4.5.11 were fixed without adding them to the bug
|
||
database, though they are in the ChangeLog:
|
||
|
||
*** Use of [[ ... ]] in find/testsuite/sv-bug-32043.sh
|
||
|
||
*** Don't delete header files in "lib/" for "make clean".
|
||
|
||
*** xargs: wait for process before prompting in interactive mode (-p)
|
||
|
||
These following fixed bugs are recorded at
|
||
https://savannah.gnu.org/bugs/?group=findutils:
|
||
|
||
#40088: potential buffer overflow in -execdir and -okdir
|
||
|
||
#39324: exits without error on OOM
|
||
|
||
#38583: errno-buffer read failed in xargs_do_exec
|
||
|
||
#38474: Unintended (?) behaviour change of -perm +mode predicate
|
||
|
||
#36652: Better document that -0/-d turns off the effect of -E.
|
||
|
||
#34976: find -execdir leaks file descriptors for the working directory
|
||
|
||
|
||
* Major changes in release 4.5.11, 2013-02-02
|
||
|
||
** Documentation Changes
|
||
|
||
The Texinfo manual and the find manual pafe now explain why two find
|
||
binaries (either 'find' and 'oldfind', or 'find' and 'ftsfind') are
|
||
installed. A manual page for either ftsfind or oldfind is also
|
||
installed, whichever is appropriate.
|
||
|
||
** Bug Fixes
|
||
|
||
#34079: Apply gnulib ftw memory fix
|
||
|
||
#33384: If rm/chmod etc. are not in /bin or /usr/bin, updatedb fails
|
||
|
||
#18227: find -ls does not display device major/minor numbers.
|
||
|
||
#29698: Correct and clarify documentation of xargs -d option
|
||
|
||
#32887: Present xargs options alphabetically like in GNU cp(1) etc
|
||
|
||
#14386: updatedb relies on mktemp, which is not portable.
|
||
|
||
#32043: find -name [ doesn't obey posix
|
||
|
||
#37926: The -inum predicate previously gave wrong results in oldfind
|
||
(ftsfind, the default find binary, was unaffected).
|
||
|
||
** Functional Changes to xargs
|
||
|
||
If no utility is specified, xargs now calls "echo" (and searches on
|
||
$PATH to find it) rather than "/bin/echo". This may give rise to
|
||
subtle behaviour differences for some users. To avoid unexpected
|
||
surprises, just explicitly specify the utility you would like to run.
|
||
For example use "xargs /bin/echo < foo" rather than "xargs < foo".
|
||
|
||
A new option is provided, --process-slot-var. If you set this, xargs
|
||
will set the indicated environment variable in each child. The values
|
||
are re-used, but no executing child process will have the same value
|
||
as another executing child process. This wishlist item was Savannah
|
||
bug #29512.
|
||
|
||
** Functional Changes to find
|
||
|
||
For find -printf, the format specifiers %{, %[ and %( are all now
|
||
reserved for future use. Previously these would print {, [ and (
|
||
respectively, but in any case those characters can just be printed
|
||
literally like this: find -printf "{[(". Code changes intended to
|
||
explain that these are reserved went into findutils-4.5.5, but this
|
||
code had, before now, had no effect.
|
||
|
||
When expanding "-printf '%F'", find reads /etc/mtab. We now take the
|
||
last match found in this file, rather than the first, to better deal
|
||
with implementations which have duplicate entries (for example
|
||
/proc/mounts on systems running the Linux kernel).
|
||
|
||
Both oldfind and ftsfind now use less heap memory when processing
|
||
directories containing very many files. However, oldfind now uses one
|
||
file descriptor per recursive subdirectory level, which will further
|
||
limit the depth of directory trees it can search. If you need find to
|
||
be able to search deep directory trees, use ftsfind (this is, by
|
||
default the binary built and installed as 'find').
|
||
|
||
The behaviour of the "awk", "posix-awk" and "gnu-awk" regular
|
||
expression types selected by the -regextype option have slightly
|
||
changed, to bring them into line with the behaviour of the GNU C
|
||
library. For "awk", character classes (such as [[:digit:]]) are now
|
||
supported. For "gnu-awk" and "posix-awk", intervals are supported and
|
||
invalid interval specifcations are treated as literals (for example
|
||
'a{1' is treated as 'a\{1').
|
||
|
||
|
||
* Major changes in release 4.5.10, 2011-05-11
|
||
|
||
** Documentation Changes
|
||
|
||
The manual now includes a small number of references to further
|
||
reading on security.
|
||
|
||
** Bug Fixes
|
||
|
||
#30608: Automagic dependency on selinux. The configure script now
|
||
provides a --without-selinux option.
|
||
|
||
#29949: find -execdir does not change working directory
|
||
|
||
#31359: test-strstr unit test fails on alpha.
|
||
|
||
#30777: find -exec echo TURNIP{} \+ is accepted but TURNIP is eaten
|
||
|
||
#30180: error message from incorrect -size option is off
|
||
|
||
#29828: test suite deadlock on FreeBSD.
|
||
|
||
** Translations
|
||
|
||
Updated translations: Finnish, Italian, Danish, Slovenian, German,
|
||
Estonian, French, Japanese, Danish.
|
||
|
||
* Major changes in release 4.5.9, 2010-04-29
|
||
|
||
** Bug Fixes
|
||
|
||
#29593: Make import-gnulib.sh work under a POSIX shell.
|
||
|
||
#29511: fails to build on kfreebsd-*
|
||
|
||
#27563: -L breaks -execdir
|
||
|
||
#19593: -execdir .... {} + has suboptimal performance (see below)
|
||
|
||
** Translations
|
||
|
||
Updated translations: Chinese (simplified).
|
||
|
||
** Performance changes
|
||
|
||
The find program will once again build argument lists longer than 1
|
||
with "-execdir ...+". The upper limit of 1 argument for execdir was
|
||
introduced as a workaround in findutils-4.3.4. The limit is now
|
||
removed, but find still does not issue the maximum possible number of
|
||
arguments, since an exec will occur each time find encounters a
|
||
subdirectory (if at least one argument is pending).
|
||
|
||
** Functional enhancements to xargs
|
||
|
||
You can now increase the parallelism of xargs in mid-run by sending
|
||
it SIGUSR1, and decrease the parallelism with SIGUSR2.
|
||
|
||
* Major changes in release 4.5.8, 2010-04-07
|
||
|
||
** Bug Fixes
|
||
|
||
#29460: -printf %Y fails in $CWD-dependent way
|
||
|
||
#27974: Use gnulib's xreadlinkat support
|
||
|
||
#29435: fd_is_cloexec does not work on Fedora buildhosts
|
||
|
||
#27221: symlink_loop check broken by FTS_CWDFD
|
||
|
||
#27213: avoid failed assertions for non-executable directories.
|
||
|
||
** Translations
|
||
|
||
Updated Vietnamese, Czech, Dutch, Polish, Russian translations.
|
||
|
||
* Major changes in release 4.5.7, 2010-04-03
|
||
|
||
** Performance changes
|
||
|
||
If you use the -fstype FOO predicate and specify a filsystem type FOO
|
||
which is not known (e.g. present in /etc/mtab) at the time find
|
||
starts, that predicate is now equivalent to -false. This substitution
|
||
currently occurs at optimisation level 2 and above.
|
||
|
||
** Translations
|
||
|
||
Copyright headers in the translation files have been updated. Some
|
||
additional messages have been marked for translation. However, there
|
||
have not been any changes to translation text. The main purpose of
|
||
this release is to provide a base for updated translations.
|
||
|
||
* Major changes in release 4.5.6b, 2010-03-30
|
||
|
||
This is a replacement release for 4.5.6, which is not available by FTP
|
||
since it contains Makefiles which are vulnerable to CVE-2009-4029.
|
||
|
||
* Major changes in release 4.5.6, 2010-03-30
|
||
|
||
** Functional Enhancements to find
|
||
|
||
patch #4848: Patch - Support for SELinux
|
||
|
||
** Bug Fixes
|
||
|
||
#29089: SELinux --context and %Z options
|
||
|
||
#28872: Mistake in "#safer" example in "Problems with -exec and
|
||
filenames" section of the Texinfo manual.
|
||
|
||
#28824: Corrected error message for "-ctime x".
|
||
Likewise for -gid, -inum, -links, -mmin, -cmin, -amin,
|
||
-uid, -used, -atime, -mtime, -ctime.
|
||
|
||
#27975: Infinite loop for -exec [..] {} +.
|
||
|
||
#27846: Assertion failure in xargs.c on AIX.
|
||
|
||
#27375: Open file descriptors leak into child processes.
|
||
|
||
#27017: find -D opt / -fstype ext3 -print , -quit coredumps
|
||
|
||
#27328: segfault if the initial exec for "find -exec" fails.
|
||
|
||
#27017: find -D opt / -fstype ext3 -print , -quit coredumps.
|
||
|
||
#26868: compilation error in pred.c on Solaris x86_64
|
||
|
||
#24873: Duplicate fprint option corrupts output
|
||
|
||
#23920: warn about un-matchable -path arguments ending in /.
|
||
|
||
#19120: Patch to fix single quotes in man page find(1)
|
||
|
||
** Documentation Changes
|
||
|
||
#26327: xargs man page is vague about the number of times command is executed.
|
||
|
||
* Major changes in release 4.5.5, 2009-07-06
|
||
|
||
xargs now handles the case where the system's actual exec limits are
|
||
smaller than the value of ARG_MAX at compile time. Very few platforms
|
||
normally have this property, but it is possible to configure some Unix
|
||
systems this way.
|
||
|
||
** Bug Fixes
|
||
|
||
#25359: files/testsuite/find.gnu/posix-h.exp tests fail
|
||
|
||
#26587: Fix a typo in -execdir documentation (it says -exec by mistake
|
||
in the text).
|
||
|
||
#26537: find -prune now makes sure it has valid stat() information.
|
||
|
||
#22708: Exit status 126 and 127 from the utility invoked from xargs
|
||
now makes xargs return 123, meaning that exit status values 126 and
|
||
127 now unambigously mean that the utility could not be run or could
|
||
not be found, respectively.
|
||
|
||
** Documentation Changes
|
||
|
||
The -wholename option to find is no longer preferred over -ipath.
|
||
|
||
|
||
* Major changes in release 4.5.4, 2009-03-10
|
||
|
||
** Performance changes
|
||
|
||
The ftsfind executable (which is built by default as "find") now calls
|
||
fts() in such a way that it avoids calling stat() on directory
|
||
entries, if it doesn't need the information. This can produce a
|
||
significant speedup on filesystems which don't populate the d_type
|
||
element of struct dirent, for example reiserfs. Anecdotal evidence
|
||
suggests this can speed updatedb up from about 30 minutes to 3-4
|
||
minutes.
|
||
|
||
The ftsfind executable also now avoids calling stat() functions to
|
||
discover the inode number of a file, if we already read this
|
||
information from the directory. This does provide a speed-up, but
|
||
only for a restricted set of commands such as "find . -inum 4001".
|
||
This fix is listed below as bug #24342.
|
||
|
||
** Bug Fixes
|
||
|
||
#25764: remove duplicate entry for 'proc' in updatedb's $PRUNEFS.
|
||
|
||
#25359: find -H wrongly behaves like -L sometimes; this bug affects
|
||
only filesystems which populate d_type and affects -type and -printf
|
||
%y. This does not affect the default behaviour of find or find -P.
|
||
|
||
#25144: Misleading error message when argument to find -user is an
|
||
unknown user or is missing.
|
||
|
||
#25154: Allow compilation with C compilers that don't allow
|
||
declarations to follow statements.
|
||
|
||
#24342: -inum predicate shoud use dirent.d_ino instead of stat.st_ino
|
||
(this is a performance bug).
|
||
|
||
** Translations
|
||
|
||
Updated translations for Bulgarian, German, Irish, Hungarian,
|
||
Lithuanian, Dutch, Polish, Slovenian, Swedish, Turkish, Ukranian,
|
||
Vietnamese.
|
||
|
||
** Documentation Changes
|
||
|
||
The file README-CVS has been renamed to README-hacking and improved.
|
||
|
||
* Major changes in release 4.5.3, 2008-12-07
|
||
|
||
** Bug Fixes
|
||
|
||
#24283: find-4.5.2 -printf %TY causes NULL pointer dereference
|
||
|
||
** Performance changes
|
||
|
||
Changes to gnulib's fts code should provide performance improvements
|
||
in find when processing very large directories (for example
|
||
directories containing significantly more than 10000 filenames).
|
||
Performance imporvements may only exist for some find command lines
|
||
(performance testing was done for the fts implementation itself but
|
||
we haven't done the analogous performance tests in find).
|
||
|
||
File type information is also passed back from fts to find, saving
|
||
calls to the stat system call for find command lines which don't need
|
||
the stat information. This provides a performance improvement for
|
||
common cases like "find . -type d".
|
||
|
||
* Major changes in release 4.5.2, 2008-09-07
|
||
|
||
** Bug Fixes
|
||
|
||
#24169: find would segfault if the -newerXY test was not followed by
|
||
any argument.
|
||
|
||
#23996: integer overflow on some platforms when parsing "-used 3".
|
||
|
||
** Documentation Enhancements
|
||
|
||
#23070: Corrected manpage description of find -perm /000 (the change
|
||
was already made but the manpage indicated the change would happen
|
||
"soon").
|
||
|
||
** Translations
|
||
|
||
Updated translation: French, Indonesian.
|
||
New translation: Czech.
|
||
|
||
* Major changes in release 4.5.1, 2008-06-21
|
||
|
||
** Bug Fixes
|
||
|
||
#22662: find -printf %AX appends nanoseconds in the right place now.
|
||
|
||
#23663: crash in some locales for -printf %AX (this problem seems to
|
||
have affected only the CVS code, and not any public releases).
|
||
|
||
** Translations
|
||
|
||
New translation: Lithuanian.
|
||
|
||
Updated translations: Chinese (simplified).
|
||
|
||
** Documentation Enhancements
|
||
|
||
Added a worked example describing how to find the shallowest instances
|
||
of a given directory name (or names) in a directory hierarchy.
|
||
|
||
* Major changes in release 4.5.0, 2008-05-21
|
||
|
||
** Functional Enhancements to find
|
||
|
||
If the POSIXLY_CORRECT environment variable is set, the system's
|
||
definition of "yes" and "no" responses are used to interpret the
|
||
response to questions from -ok and -okdir. The default is still to
|
||
use information from the findutils message translations.
|
||
|
||
** Enhancements
|
||
|
||
If xargs find that exec fails because the argument size limit it
|
||
calculated is larger than the system's actual maximum, it now adapts
|
||
by passing fewer arguments (as opposed to failing).
|
||
|
||
** Performance changes
|
||
|
||
The default optimisation level for find is now -O2 instead of -O0,
|
||
meaning that a number of additional optimisations are performed by
|
||
default. Current optimisations at each level are:
|
||
|
||
0: Perform -name, -path, -iname, -ipath before other checks.
|
||
1: Expressions containing only cost-free tests are evaluated
|
||
before expressions which contain more costly tests.
|
||
2: Bring forward all tests that need to know the type of a file
|
||
but don't need to stat it.
|
||
3: All tests are ordered by their estimated cost.
|
||
|
||
Cost here is simply an estimate of how time consuming the I/O
|
||
operations needed to make a test are.
|
||
|
||
** Bug Fixes
|
||
|
||
|
||
#22662: nanoseconds wrongly appended after "PM" for find -printf %AX
|
||
in locale en_US.UTF-8.
|
||
|
||
#15472: Error messages that print ino_t values are no longer truncated
|
||
on platforms with 64-bit ino_t.
|
||
|
||
On some systems without support for a boolean type (for example some
|
||
versions of the AIX C compiler), find's regular expression
|
||
implementation fails to support case-insensitive regular expression
|
||
matching, causing -iregex to behave like -regex. This is now fixed.
|
||
|
||
** Documentation Changes
|
||
|
||
#20873: Indicate that * matches / and leading dot in filenames for
|
||
"find -path".
|
||
|
||
Both the Texinfo manual and the find manual page now include a more
|
||
precise description of how your locale configuration affects the
|
||
interpretation of regular expressions and how your response to prompts
|
||
from the -ok action are interpreted.
|
||
|
||
* Major changes in release 4.3.13, 2008-02-14
|
||
|
||
** Bug Fixes
|
||
|
||
#22057: Actually rename the old locate database to the new one
|
||
atomically, instead of just claiming the rename is atomic in a
|
||
comment.
|
||
|
||
#22056: -Xtime tests are off by one second (e.g. rm -f x; touch x;
|
||
find x -mtime 0 should print x).
|
||
|
||
#21960: xargs should collect the exit status of child processes even if
|
||
the total count of unreaped children has not yet reached the maximum
|
||
allowed.
|
||
|
||
** Documentation Fixes
|
||
|
||
Documented various useful techniques with invoking "sh -c" from
|
||
xargs in the Texinfo documentation.
|
||
|
||
** Translations
|
||
|
||
Updated the German, Irish, Dutch, Polish and Vietnamese translations.
|
||
|
||
|
||
* Major changes in release 4.3.12, 2007-12-19
|
||
|
||
** Bug Fixes
|
||
|
||
#15384: Find misbehaves when parent directory is not readable.
|
||
|
||
** Documentation Fixes
|
||
|
||
More examples in the xargs manual page, including a portable analogue
|
||
for BSD's "xargs -o".
|
||
|
||
** Translations
|
||
|
||
Updated translations: Polish, Dutch, Portuguese, Swedish, Vietnamese.
|
||
|
||
|
||
* Major changes in release 4.3.11, 2007-12-02
|
||
|
||
** Functional changes
|
||
|
||
When the POSIXLY_CORRECT environment variable is set, "find -perm
|
||
+a+w" is rejected as invalid. Some other similar mode strings
|
||
starting with '+' which are not valid in POSIX are also rejected.
|
||
|
||
The -prune action now always evaluates as true (this is also a
|
||
bugfix).
|
||
|
||
|
||
** Bug Fixes
|
||
|
||
#21568: Switch to checking the gnulib code out with native git, not
|
||
CVS. This affects mainly those who check findutils code out of CVS.
|
||
This is not the first time this bug has been fixed (the previous fix
|
||
used "cvs update -D", which git-cvspserver silently does not
|
||
support).
|
||
|
||
#21039: Setting the POSIXLY_CORRECT environment variable now turns off
|
||
warnings by default, because POSIX requires that only diagnostic
|
||
messages (and -ok prompts) are printed on STDERR, and diagnostic
|
||
messages must also result in a nonzero exit status.
|
||
|
||
#20970: Trailing slash on directory arguments breaks -name. "find
|
||
foo/ -name foo" now correctly matches foo and printf foo/. See POSIX
|
||
interp http://www.opengroup.org/austin/interps/uploads/40/14959/AI-186.txt
|
||
|
||
#20865: Using both -delete and -prune without explicitly using -depth
|
||
is now an error. Traditionally, -delete has always turned -depth on
|
||
anyway, so this is not a functional change. However, using -depth
|
||
(implicitly or explicitly) makes -prune a no-op. This change is
|
||
intended to avoid nasty surprises for people who test with
|
||
"-print" and then change it to "-delete" when they are happy.
|
||
|
||
#20803: POSIX requires that -prune always returns true. Previously it
|
||
returned false when -depth was in effect and true otherwise.
|
||
|
||
#20802: If -delete fails, find's exit status will now be non-zero.
|
||
However, find still skips trying to delete ".".
|
||
|
||
** Documentation Fixes
|
||
#21635: Some of the documentation files had missing copying
|
||
conditions. The missing files now have copying headers, and these
|
||
are compatible with each other (GNU FDL 1.2).
|
||
|
||
#21634: No copy of FDL 1.2 included with the source code
|
||
|
||
#21633: Missing copyright/license header in some documentation.
|
||
|
||
#21628: find -perm /000 matches all files rather than none, since
|
||
findutils-4.3.3. The Texinfo documentation is now consistent with the
|
||
manual page on this point.
|
||
|
||
#21270: Formatting fixes to the xargs.1 manual page, including making
|
||
options bold instead of italic and making OPTIONS a section header
|
||
rather than a subsection.
|
||
|
||
* Major changes in release 4.3.10, 2007-11-13
|
||
|
||
** Bug Fixes
|
||
|
||
#21568: findutils gnulib code does not match the date in
|
||
import-gnulib.config. We now check out the gnulib code via
|
||
git-cvs-pserver.
|
||
|
||
* Major changes in release 4.3.9, 2007-11-11
|
||
|
||
** Licensing
|
||
|
||
Findutils version 4.3.9 is released under version 3 of the GNU General
|
||
Public License.
|
||
|
||
** Bug Fixes
|
||
|
||
#20834: Avoid segmentation violation for -execdir when $PATH is
|
||
unset. Assume that the PATH is safe in this situation.
|
||
|
||
#20310: configure uses hosts's support status for "sort -z" when
|
||
generating the updatedb script for use on the target. This is
|
||
inappropriate when cross-compiling, so avoid doing that.
|
||
|
||
#20263: Compilation fix for DEC Alpha OSF/1 cc, which forbids the
|
||
ordering comparison of function pointers.
|
||
|
||
#20139: find -[acm]time -N (wrongly) includes files from N days ago,
|
||
as well as (correctly) from less than N days ago.
|
||
|
||
#20273: When xargs is successful without consuming all of stdin (for
|
||
example, with the -E option), and stdin is seekable, xargs now
|
||
correctly restores the file position, even on platforms where exit()
|
||
does not follow the POSIX rules of doing likewise. Likewise for find
|
||
(for example, with the -ok action).
|
||
|
||
#20547: The version information printed by find, xargs, locate,
|
||
updatedb, frcode and code now complies with the GNU Project's coding
|
||
standards.
|
||
|
||
#20662: Avoid memory leak in find -name and other places affected by
|
||
gnulib dirname module. The leak had been present since 4.3.1.
|
||
|
||
#20751: Avoid memory corruption in find -ls that has been present
|
||
since 4.3.1.
|
||
|
||
#20871: Assertion failure introduced in 4.3.3, when oldfind is invoked
|
||
in a directory where the parent directory lacks search permission.
|
||
|
||
** Enhancements
|
||
|
||
#20594: Allow fine-tuning of the default argument size used by xargs
|
||
and find at ./configure time.
|
||
|
||
#20688: The warning printed by -name or -iname when the pattern to
|
||
match contains a slash can now be silenced by -nowarn. This warning
|
||
was originally introduced unconditionally in 4.2.21.
|
||
|
||
Translation of locate --limit problems is improved.
|
||
|
||
POSIX will standardise -path, so the documentation no longer claims
|
||
that -wholename is the 'canonical' test, and -ipath no longer
|
||
generates a warning.
|
||
|
||
** Documentation Fixes
|
||
|
||
Point out more explicitly that the subsecond timestamp support
|
||
introduced by findutils-4.3.3 introduces a change in the format of
|
||
several fields.
|
||
|
||
Also explain that when reporting a bug, you should check the most
|
||
recent findutils release first.
|
||
|
||
Introduced doc/find-maint.texi, a maintenance manual for findutils.
|
||
|
||
Added an extra worked example for find (copying a subset of files).
|
||
|
||
The locate command's manual page now has a HISTORY section.
|
||
|
||
#20951: Very bad/unclear/confusing documentation of security checks in
|
||
find -execdir
|
||
|
||
#20865: Better documentation on the fact that -delete implies -depth
|
||
and that -delete interacts badly with -prune.
|
||
|
||
#20552: Fixed typos, formatting and section ordering issues in the
|
||
find manual page.
|
||
|
||
#20529: removed spurious 'o' in description of "xargs -a" in
|
||
doc/find.texi.
|
||
|
||
#20232: The --max-database-age option of locate was added in release
|
||
4.3.3, but this file (NEWS) did not previously mention this fact.
|
||
|
||
** Translations
|
||
|
||
Updated Dutch translation.
|
||
|
||
|
||
* Major changes in release 4.3.8, 2007-06-12
|
||
|
||
** Bug Fixes
|
||
|
||
#20157: Avoid segfault in locate when run as root. This is caused by
|
||
a buffer overrun, but at this time no exploit mechanism is known.
|
||
|
||
* Major changes in release 4.3.7, 2007-06-09
|
||
|
||
** Functional changes
|
||
|
||
Locate can now read old-format locate databases generated on machines
|
||
with a different byte order. It does this by guessing the byte order,
|
||
so the result is not completely reliable. If you need to share
|
||
databases between machines of different architectures, you should use
|
||
the LOCATE02 format (which has other advantages, as explained in the
|
||
documentation).
|
||
|
||
** Security Fixes
|
||
|
||
#20014: Findutils-4.3.7 includes a patch for a potential security
|
||
problem in locate. When locate read an old-format database, it read
|
||
file names into a fixed-length buffer allocated on the heap without
|
||
checking for overflow. Although overflowing a heap buffer is often
|
||
somewhat safer than overflowing a buffer on the stack, this bug still
|
||
has potential security implications.
|
||
|
||
This bug also affected the following previous findutils releases:
|
||
|
||
- All releases prior to 4.2.31
|
||
- Findutils 4.3.0 to 4.3.6.
|
||
|
||
This bug has been assigned CVE number CVE-2007-2452.
|
||
|
||
** Bug Fixes
|
||
|
||
#20128: Fix compilation error of find/tree.c on AIX with GCC.
|
||
|
||
#20005: Tests -mtime -n and -mtime +n incorrectly treated like -mtime n.
|
||
|
||
#19983: include_next causes compilation failure in findutils 4.3.6 on
|
||
non-GCC compilers
|
||
|
||
#19981: Don't call setgroups if the function isn't available. This
|
||
fixes Savannah bug# 19981.
|
||
|
||
#19980: Don't use the functions putw() or getw() since these are not
|
||
in current POSIX. Use the gnulib version of wcwidth() where the
|
||
system does not provide it.
|
||
|
||
#19979: Compilation errors on BeOS
|
||
|
||
#19970: Cannot cast from pointer to bool using gnulib's <stdbool.h>
|
||
|
||
#19967: Use of __attribute((__noreturn__)) makes compilation fail with
|
||
some non-GCC compilers
|
||
|
||
#19966: find should link against -lm for modf() and fabs()
|
||
|
||
#19965: Compilation failure on OSF/1 4.0; non-declaration of uintmax_t
|
||
|
||
#19948: Assertion failure O_NOFOLLOW != 0 on IRIX 6.5
|
||
|
||
#19871: Typos in find.1
|
||
|
||
#19596: Fixed this bug again, this time in the Texinfo manual (the
|
||
discussion should compare %b with %s/512, not %s/1024).
|
||
|
||
#19416: _FORTIFY_SOURCE warn_unused_result warnings
|
||
|
||
* Major changes in release 4.3.6, 2007-05-21
|
||
|
||
** Bug Fixes
|
||
|
||
#19948: Fixed an assertion failure on IRIX 6.5 (O_NOFOLLOW is defined
|
||
to 0 there).
|
||
|
||
#19923: Fixed an array overrun in groups[] array of 'locate' when run by
|
||
or as root. This bug appears not to be exploitable. If locate is not
|
||
installed setuid, the bug is not exploitable. For setuid
|
||
installations, it is concievable that there could be an information
|
||
leak if the user uses the -d option or the -e option, though the
|
||
maintainer has been unable to provoke this on an x86 system.
|
||
|
||
#19871: Spurious .R directives in manpage produced error messages from
|
||
GNU troff. This is now fixed (they are corrected to .B).
|
||
|
||
#19416: The result of I/O operations in print-related actions is now
|
||
checked, and failures are reported. Any failure will cause find's
|
||
exit status to be nonzero. The predicate itself will continue to
|
||
return true.
|
||
|
||
** Compilation Fixes
|
||
|
||
A variety of changes were made to allow compilation to succeed on
|
||
non-GNU systems.
|
||
|
||
#19983: Now compiles on DEC C V5.9-005 on Digital UNIX V4.0 (or at
|
||
least, should).
|
||
|
||
#19970: Compile correctly on C89 systems where the "_Bool" type is not
|
||
provided, taking into account the limitations of the gnulib
|
||
replacement for stdbool.h.
|
||
|
||
#19967: Build successfully with C compilers that don't support the GCC
|
||
construct __attribute__((__noreturn__)).
|
||
|
||
#19966: Findutils should now build on systems which have the modf()
|
||
and fabs() functions in the maths library, -lm. This includes some
|
||
versions of HP-UX and Solaris.
|
||
|
||
#19965: Fixed a compilation failure on OSF/1 4.0 (no definition of the
|
||
type uintmax_t).
|
||
|
||
|
||
* Major changes in release 4.3.5, 2007-05-05
|
||
|
||
** Functional changes
|
||
|
||
Updatedb can now support he generation of file name databases which
|
||
are compatible with slocate. For some time, GNU locate has been able
|
||
to read these.
|
||
|
||
The /proc filesystem is excluded from the locate database (by
|
||
default; change PRUNEPATHS to modify this behaviour).
|
||
|
||
** Bug Fixes
|
||
|
||
#19806: The -samefile predicate might get fooled by inode reuse. We
|
||
now hold open a file descriptor on the reference file to prevent this.
|
||
|
||
#19768: Better detection of corrupted old-style locate databases
|
||
(e.g. if the database is too short to include a complete bigram
|
||
table).
|
||
|
||
#19766: The frcode and code programs now detect write errors more
|
||
reliably.
|
||
|
||
#19371: Fix compilation failure on systems which #define open to
|
||
open64 (and similarly with the close system call). This fixes
|
||
Savannah bug #19371, affecting AIX 5.3.
|
||
|
||
#19658: When cross-compiling, "make clean" no longer deletes the
|
||
generated file doc/regexprops.texi, because there is no way to
|
||
regenerate it.
|
||
|
||
#19391: When xargs knows that the system's actual exec limit is larger
|
||
than the compiled-in ARG_MAX, use the system's limit without
|
||
generating an assertion failure.
|
||
|
||
#18203: A duplicate report of bug #17478.
|
||
|
||
#17478: Error messages from find can garble the console.
|
||
|
||
#16378: Assertion failure if stat() returns 00000 as the mode
|
||
of a file. This apparently can happen occasionally with broken NFS
|
||
servers.
|
||
|
||
#11668: FreeBSD extensions for time specification are now
|
||
implemented. In fact, these were included in findutils-4.3.3. The
|
||
change was listed as a functional change (whcih it is) and this bug
|
||
report was not mentioned.
|
||
|
||
** Documentation Fixes
|
||
|
||
The locatedb.5 manpage now documents the (default) LOCATE02 format
|
||
more clearly, and also documents the slocate database format.
|
||
|
||
The maximum and default values applying to the -s option of xargs are
|
||
now documented more clearly in the manual page.
|
||
|
||
* Major changes in release 4.3.4, 2007-04-21
|
||
|
||
** Bug Fixes
|
||
|
||
#19634: Test suite now passes (again) if "." is on your $PATH.
|
||
|
||
#19619: Findutils builds once again on Cygwin.
|
||
|
||
#19617: Nonexistent start points are (once again) diagnosed in
|
||
ftsfind. This bug affected only findutils-4.3.3.
|
||
|
||
#19616: Fix leaf optimisation and loop detection (which were
|
||
unreliable in findutils 4.3.3). This bug affected only
|
||
findutils-4.3.3.
|
||
|
||
#19615: find --version no longer claims to be using FTS_CWDFD when it
|
||
isn't. This bug affected only findutils-4.3.3.
|
||
|
||
#19613: "find -L . -type f" no longer causes an assertion failure when
|
||
it encounters a symbolic link loop. This bug affected only
|
||
findutils-4.3.3.
|
||
|
||
#19605: Issue an error message (and later return nonzero exit status)
|
||
if a symbolic link loop was encountered during directory traversal.
|
||
|
||
#19484: bigram.c and code.c fail if the first pathname recorded begins
|
||
with a space
|
||
|
||
#19483: Inconsistent option highlighting in updatedb manpage
|
||
|
||
#18414: Tests for "find -readable" are skipped for the superuser, as
|
||
on some systems (e.g. Cygwin with an Administrative user) users can
|
||
read mode-000 files.
|
||
|
||
** Translations
|
||
|
||
Findutils 4.3.4 includes a translation for the Ukrainian language.
|
||
|
||
|
||
* Major changes in release 4.3.3, 2007-04-15
|
||
|
||
Fiundutils-4.3.3 was released on 2007-04-15.
|
||
|
||
** Bug Fixes
|
||
|
||
#19596: Correct the comparison in the find manpage between %b and %s
|
||
(the divisor is 512 not 1024).
|
||
|
||
#18714: In the POSIX locale, vertical tabs and form feeds are not
|
||
field separators.
|
||
|
||
#18713: Quoted but empty arguments which occur last on an xargs input
|
||
line are no longer ignored, but instead produce an empty argument.
|
||
|
||
#18554: Documented the construct -exec sh -c 'foo "$@" bar' {} +
|
||
|
||
#18466: we now avoid this bug by limiting "-execdir ...+"
|
||
to just one argument for the time being. There is a performance
|
||
penalty for doing this. We hope to make a better fix in a later
|
||
release.
|
||
|
||
#18384: excess bracket in xargs --help
|
||
|
||
#18320: Zero bytes in input should give warning
|
||
|
||
#17437: Corrected the handling of X in symbolic permissions (such
|
||
as-u+w,a+X). This change actually occurred in findutils-4.3.2, but
|
||
the NEWS file for that release didn't mention it.
|
||
|
||
#17396: find -mtime -atime -ctime does not support fractional part
|
||
(see "Functional changes" below)
|
||
|
||
#14748: find -perm /zzz gives wrong result when zzz evaluates to an
|
||
all-zero mask
|
||
|
||
#14535: correctly support case-folding in locate (that is, "locate
|
||
-i") for multibyte character environments such as UTF-8. Previously,
|
||
if your search string contained a character which was outside the
|
||
single-byte-encoding range for UTF-8 for example, then the
|
||
case-folding behaviour failed to work and only exact matches would be
|
||
returned.
|
||
|
||
|
||
|
||
** Functional changes
|
||
|
||
The -printf action (and similar related actions) now support %S,
|
||
which is a measurement of the sparseness of a file.
|
||
|
||
The test "-perm /000" now matches all files instead of no files. For
|
||
over a year find has been issuing warning messages indicating that
|
||
this change will happen. We now issue a warning indicating that the
|
||
change has already happened (in 4.3.x only, there is no plan to make
|
||
this change in the 4.2.x series).
|
||
|
||
The tests -newer, -anewer, -cnewer, -mtime, -atime, -ctime, -amin,
|
||
-cmin, -mmin and -used now support sub-second timestamps, including
|
||
the ability to specify times with non-integer arguments.
|
||
|
||
The -printf format specifiers also support sub-second timestamps:
|
||
atime ctime mtime
|
||
%a %c %t
|
||
%AS %CS %TS
|
||
%AT %CT %TT
|
||
%A+ %C+ %T+
|
||
%AX %CX %TX
|
||
|
||
|
||
The new test -newerXY supports comparison between status times for
|
||
files. One of the status times for a file being considered (denoted
|
||
X) is checked against a reference time (denoted Y) for the file whose
|
||
name id the argument. X and Y can be:
|
||
|
||
a Access time
|
||
B Birth time (st_birthtime, currently unsupported)
|
||
c Change time
|
||
m Modification time
|
||
t Valid only for the reference time; instead of comparison
|
||
against a file status time, the argument is a time string.
|
||
Not yet supported.
|
||
|
||
For example, -newermm is equivalent to -newer, and -neweram is true if
|
||
the file being considered was accessed more recently than the
|
||
reference file was modified. The -newerXY test supports subsecond
|
||
timestamps where these are available. The X=B variant is not yet
|
||
implemented.
|
||
|
||
If you configure the source code and then run the tests with "make
|
||
check", the test suite fails rather than defaulting to testing the
|
||
system binaries.
|
||
|
||
A new option, --max-database-age, has been added to locate.
|
||
|
||
|
||
* Major changes in release 4.3.2, 2006-11-25
|
||
|
||
** Bug Fixes
|
||
|
||
#18222: find -printf '%H %P' once again prints the right result if
|
||
more than one start point was given on the command line.
|
||
|
||
#17782: find -execdir now correctly puts the prefix "./" before the
|
||
expansion of "{}" rather than at the start of the argument it appears
|
||
in. Please note that if you use the -exec or -execdir actions with a
|
||
shell, then you may be vulnerable to shell code injection attacks, so
|
||
don't do that. It's not a security defect in find - you should not be
|
||
passing untrusted data (such as file names chosen by other people) to
|
||
the shell.
|
||
|
||
#17490: find -regex generated a segfault in findutils-4.3.1, but this
|
||
is fixed in findutils-4.3.2.
|
||
|
||
#17477: find -printf '%' (that is, where the format has a trailing %)
|
||
now generates an error message.
|
||
|
||
#17372: The fts-based find executable (the default configuration uses
|
||
fts) is now much faster when -maxdepth is used on filesystems with
|
||
high fanouts.
|
||
|
||
#15531: The -prune action now behaves correctly when applied to a file.
|
||
|
||
** Functional changes
|
||
|
||
The slocate database format is now supported. Preliminary changes
|
||
intended to eventually allow setuid operation of locate have also been
|
||
made. For the moment, please don't install GNU locate as a
|
||
set-user-ID program (except for testing purposes; if you do so, please
|
||
make sure that untrusted users cannot execute the set-user-ID locate
|
||
program).
|
||
|
||
Use of an slocate database which was built with a nonzero security
|
||
mode (at the moment, GNU updatedb will not do this) forces locate's
|
||
"-e" option to be turned on, which has an effect on the "-S" option
|
||
which is probably surprising for most users.
|
||
|
||
|
||
** Documentation Fixes
|
||
|
||
The global effect of options (other than -daystart and -follow) is now
|
||
explained more clearly in the manual page. Savannah bug #15360.
|
||
|
||
|
||
* Major changes in release 4.3.1, 2006-08-06
|
||
|
||
** Bug Fixes
|
||
|
||
Find now follows POSIX rules for determining where directories end and
|
||
expressions start. This means that "find \(1 \!2 \, \)" now searches
|
||
in the four named directories, rather than trying to parse an
|
||
expression. (Savannah bug #15235).
|
||
|
||
You now get a more helpful error message when you use command lines
|
||
which have missing expressions, such as
|
||
find . ( )
|
||
find . !
|
||
find . -a
|
||
find . \( -not \)
|
||
find . \( -true -a
|
||
|
||
Savannah bug #15800: If find finds more subdirectories within a parent
|
||
directory than it previously expected to based on the link count of
|
||
the parent, the resulting error message now gives the correct
|
||
directory name (previously an error message was issued but it
|
||
specified the wrong directory).
|
||
|
||
Savannah bug #16738: "find .... -exec ... {} +" now works if you have
|
||
a large environment and many files must be passed to the -exec
|
||
action. The same problem affected the -execdir action, though since
|
||
the number of files in a given directory will normally be smaller, the
|
||
problem was worse for -exec.
|
||
|
||
Savannah bug #16579: Updatedb now works if it is running as a user
|
||
whose login shell is not actually a shell.
|
||
|
||
There have also been a number of documentation improvements (includng
|
||
Savannah bug #16269).
|
||
|
||
** Functional changes
|
||
|
||
For find, debug output can now be enabled at runtime with the -D
|
||
option. This causes the printing of various sorts of information
|
||
about find's internal state and progress.
|
||
|
||
The find option -nowarn cannot itself produce a warning (this used to
|
||
happen with commands like "find . -name quux -nowarn -print").
|
||
|
||
** Performance Enhancements
|
||
|
||
Find now has a rudimentary cost-based optimiser. It has an idea of
|
||
the basic cost of each test (i.e. that -name is very cheap while -size
|
||
is more expensive). It re-orders tests bearing in mind the cost of
|
||
each test and its likely success. Predicates with side effects (for
|
||
example -delete or -exec) are not reordered. The optimiser is not
|
||
yet enabled by default, but the new option -O controls the query
|
||
optimisation level. To see this in action, try
|
||
find -D opt -O3 . -type f -o -type c -o -size 555 -name Z
|
||
and compare the optimised query with:
|
||
find -D opt -O3 . -size 555 -o -type c -o -type f -name Z
|
||
and
|
||
find -D opt . -size 555 -o -type c -o -type f -name Z
|
||
|
||
Over time, as optimisations are proven to be robust and correct, they
|
||
will be moved to lower optimisation levels. Some optimisations have
|
||
always been performed by find (for example -name is always done early
|
||
if possible).
|
||
|
||
** Translations
|
||
|
||
Findutils 4.3.1 includes updated translations for the following
|
||
languages:
|
||
Vietnamese, Belarusian, Catalan, Danish, German, Greek, Esperanto,
|
||
Spanish, Estonian, Finnish, French, Irish, Galician, Croatian, Hungarian,
|
||
Indonesian, Italian, Japanese, Korean, Luganda, Malay, Dutch, Polish,
|
||
Portuguese, Brazilian Portuguese, Romanian, Russian, Kinyarwanda,
|
||
Slovak, Slovenian, Serbian, Swedish, Turkish, Chinese (simplified),
|
||
Chinese (traditional), Bulgarian
|
||
|
||
* Major changes in release 4.3.0, 2005-12-12
|
||
|
||
The 4.3.x release series are currently 'development' releases. Please
|
||
test it, but think carefully before installing it in a production
|
||
system. New features in findutils-4.3.x are under development; they
|
||
may change or go away.
|
||
|
||
All changes up to and including findutils-4.2.27 are included in this
|
||
release. In addition the following changes are new in this release:
|
||
|
||
** Functional Changes
|
||
|
||
By default, find now uses the fts() function to search the file
|
||
system. The use of fts greatly increases find's ability to search
|
||
extremely deep directory hierarchites.
|
||
|
||
You can tell that the version of find you are using uses FTS, because
|
||
the output of "find --version" will include the word "FTS".
|
||
|
||
Currently two binaries for 'find' are built. The configure option
|
||
--without-fts can be used to select whether 'find' uses fts:
|
||
|
||
With fts Without fts
|
||
default configuration find oldfind
|
||
configure --with-fts find oldfind
|
||
configure --without-fts ftsfind find
|
||
|
||
New tests, -readable, -writable, -executable. These check that a file
|
||
can be read, written or executed respectively.
|
||
|
||
* Major changes in release 4.2.27, 2005-12-06
|
||
|
||
** Warnings of Future Changes
|
||
|
||
The test -perm /000 currently matches no files, but for greater
|
||
consistency with -perm -000, this will be changed to match all files;
|
||
this change will probably be made in early 2006. Meanwhile, a warning
|
||
message is given if you do this.
|
||
|
||
** Bug Fixes
|
||
|
||
If xargs is invoked with many short arguments on PPC systems running
|
||
the Linux kernel, we no longer get an "argument list too long" error
|
||
from the operating system.
|
||
|
||
Fixed a bug in the test suite which caused it to spuriously fail on
|
||
systems where ARG_MAX is different to the value used by the Linux
|
||
kernel on 32-bit x86-architecture systems.
|
||
|
||
On systems running the Linux kernel, "find -printf %F" no longer
|
||
produces the wrong answer for files on filesystems that have been
|
||
remounted elsewhere using "mount --bind". (Savannah bug #14921).
|
||
|
||
** Documentation Changes
|
||
|
||
Following some extensive and detailed review comments from Aaron
|
||
Hawley, the material in the manual pages and the Texinfo manual are
|
||
now synchronised.
|
||
|
||
The %M format specifier of "find -printf" is now documented, although
|
||
it has existed since release 4.2.5.
|
||
|
||
The 'find' manual page now correctly documents the fact that -regex
|
||
defaults to using Emacs-style regular expressions (though this can be
|
||
changed).
|
||
|
||
* Major changes in release 4.2.26, 2005-11-19
|
||
|
||
** Public Service Announcements
|
||
|
||
I'd like to point out a second time that the interpretation of '-perm
|
||
+mode' has changed to be more POSIX-compliant. If you want the old
|
||
behaviour of the GNU extension you should use '-perm /mode'. See the
|
||
NEWS entry for findutils version 4.2.21 for details.
|
||
|
||
** Functional Changes
|
||
|
||
The xargs command now supports a new option (--delimiter) which allows
|
||
input items to be separated by characters other than null and
|
||
whitespace. This resolves Savannah support request sr #102914.
|
||
|
||
Sometimes find needs to read the /etc/mtab file (or perform the
|
||
equivalent operation on systems not using /etc/mtab). If this
|
||
information is needed but not available, find now exits with an error
|
||
message non-zero status. If the information is not needed, find will
|
||
not spuriously fail.
|
||
|
||
A new xargs option --delimiter allows the input delimiter to be
|
||
changed (previously \0 was the only choice unless you use the -L
|
||
option, which changes other semantics too).
|
||
|
||
** Bug Fixes
|
||
|
||
If the environment size is too large to allow xargs to operate
|
||
normally, 'xargs --help' still works (now).
|
||
|
||
If the input to xargs is a large number of very short options (for
|
||
example, one character each), earlier versions of xargs would fail
|
||
with 'Argument list too long'. However, since this is precisely the
|
||
problem that xargs was invented to solve, this is a bug. Hence on
|
||
those systems we now correctly use a shorter command line. This
|
||
problem particularly affected 64-bit Linux systems because of the
|
||
larger size of pointers, although 32-bit Linux systems were also
|
||
affected (albeit for longer command lines). In theory the same
|
||
problem could affect 'find -exec {} +', but that's much less likely
|
||
(even so, the bug is fixed there too).
|
||
|
||
Bugfix for an unusual failure mode (Savannah bug #14842) where an
|
||
attempt to allocate more space for directory contents succeeds but is
|
||
incorrectly diagnosed as a failure. The likelihood of you
|
||
experiencing this depends on your architecture, operating system and
|
||
resource limits. This failure has been observed in a directory
|
||
containing 35396 entries.
|
||
|
||
** Documentation Changes
|
||
|
||
The EXAMPLES section of the find manual page now correctly describes
|
||
the symbolic and octal modes for the -perm test.
|
||
|
||
The documentation and "--help" usage information for the -L, -l, -I
|
||
and -i options have been clarified (but the behaviour has not changed).
|
||
|
||
The documentation now explains more clearly what happens when you use
|
||
"-L -type l".
|
||
|
||
* Major changes in release 4.2.25, 2005-09-03
|
||
|
||
** Bug Fixes
|
||
|
||
find -perm /440 (which should succeed if a file is readable by its
|
||
owner or group) now works. Previously there was a bug which caused
|
||
this to be treated as "find -perm 440".
|
||
|
||
Some files in the xargs test suite have been renamed to avoid problems
|
||
on operating systems whoch cannot distinguish filenames on the basis
|
||
of upper/lower case distinctions.
|
||
|
||
The software now builds on Cygwin, including the generated file
|
||
regexprops.texi.
|
||
|
||
Findutils should now build once again on systems supporting AFS, but
|
||
this support has not recently been fully tested. Findutils should
|
||
also (once again) build on Cygwin.
|
||
|
||
** Other Changes
|
||
|
||
The test suite for find is now much more extensive.
|
||
|
||
* Major changes in release 4.2.24, 2005-07-29
|
||
|
||
** Documentation Changes
|
||
|
||
The manual now includes a "Worked Examples" section which talks about
|
||
the various ways in which findutils can be used to perform common
|
||
tasks, and why some of these alternatives are better than others.
|
||
|
||
The -I option of xargs (which is required by the POSIX standard) is
|
||
now documented.
|
||
|
||
We now document the fact that find ensures that commands run by -ok
|
||
and -okdir don't steal find's input. Find does this by redirecting
|
||
the command's standard input from stdin.
|
||
|
||
Many documentation readability enhancements and proofreading fixes
|
||
were contributed by Aaron Hawley.
|
||
|
||
** Functional Changes
|
||
|
||
*** Functional changes in locate
|
||
|
||
The "--regex" option of locate now assumes the regular expression to
|
||
be in the same syntax as is used in GNU Emacs, though this can be
|
||
changed with the new option --regextype. This is a change from the
|
||
existing behaviour (which was to use POSIX Basic Regular Expressions).
|
||
Since this feature is releatively new anyway, I though it was more
|
||
useful to have compatibility between regular expression handling in
|
||
find and locate than to maintain the short-lived previous behaviour of
|
||
locate.
|
||
|
||
The locate program now also supports a "--regextype" long option which
|
||
controls which regular expression syntax is understood by locate.
|
||
This is a long option and has no single-letter 'short option'
|
||
equivalent.
|
||
|
||
*** Functional changes in find
|
||
|
||
The regular expression syntax understood by "find" can be changed with
|
||
the -regextype option; this option is positional, meaning that you can
|
||
have several tests, each using a distinct syntax (this is not
|
||
recommended practice however).
|
||
|
||
The default regular expression syntax is substantially the same as
|
||
that recognised by GNU Emacs, except for the fact that "." will match
|
||
a newline.
|
||
|
||
The leaf optimisation can be disabled with the configure option
|
||
"--disable-leaf-optimisation", which is equivalent to specifying
|
||
"-noleaf" on all find command lines. This is useful for systems
|
||
having filesystems which do not provide traditional Unix behaviour for
|
||
the link count on directories (for example Cygwin and the Solaris 9
|
||
HSFS implementation).
|
||
|
||
** Bug Fixes
|
||
|
||
*** Bug Fixes for find
|
||
|
||
The -iregex test now works once again on systems that lack
|
||
re_search() (that is, systems on which findutils needs to use the
|
||
gnulib version of this function).
|
||
|
||
find -regex now once again uses GNU Emacs-compatible regular
|
||
expressions.
|
||
|
||
If invoked with stderr closed, the -fprint and -fprintf actions now no
|
||
longer cause error messages to be sent into the output file.
|
||
|
||
If the link count of a directory is less that two, the leaf
|
||
optimisation is now disabled for that directory. This should allow
|
||
searching of non-Unix filesystems to be more reliable on systems that
|
||
don't take the trouble to make their filesystems look like traditional
|
||
Unix filesystems. Some filesystems don't even take the trouble to
|
||
have a link count of less than two and for these, -noleaf is still
|
||
required unless --disable-leaf-optimisation was used at configure time.
|
||
|
||
The "%Y" directive for the -printf action now no longer changes find's
|
||
idea of the mode of the file, so this means among other things that
|
||
"-printf %Y %y" now works properly. This is Savannah bug #13973.
|
||
|
||
* Major changes in release 4.2.23, 2005-06-19
|
||
|
||
** Documentation Changes
|
||
|
||
The -L and -I options of xargs are currently incompatible (but should
|
||
not be).
|
||
|
||
Improved the documentation for -execdir and -okdir.
|
||
|
||
** Functional Changes to updatedb
|
||
|
||
File names ending in "/" which are specified as an argument to
|
||
--prunepaths (or in $PRUNEPATHS) don't work, so we now issue an error
|
||
message if the user tries to do that. The obvious exception of course
|
||
is "/" which does work and is not rejected.
|
||
|
||
|
||
* Major changes in release 4.2.22, 2005-06-12
|
||
|
||
** Security Fixes
|
||
|
||
If a directory entry searched with "find -L" is a symbolic link to
|
||
".", we no longer loop indefinitely. This problem affected find
|
||
versions 4.2.19, 4.2.20 and 4.2.21. This problem allows users to make
|
||
"find" loop indefinitely. This is in effect a denial of service and
|
||
could be used to prevent updates to the locate database or to defeat
|
||
file security checks based on find. However, it should be noted that
|
||
you should not use "find -L" in security-sensitive scenarios.
|
||
|
||
** Other Bug Fixes
|
||
|
||
None in this release.
|
||
|
||
** Functional Changes to locate
|
||
|
||
A locate database can now be supplied on stdin, using '-' as a element
|
||
of the database-path. If more than one database-path element is '-',
|
||
later instances are ignored.
|
||
|
||
A new option to locate, '--all' ('-A') causes matches to be limited to
|
||
entries which match all given patterns, not entries which match
|
||
one or more patterns.
|
||
|
||
** Documentation Changes
|
||
|
||
Some typos in the manual pages have been fixed. Various parts of the
|
||
manual now point out that it is good practice to quote the argument of
|
||
"-name". The manpage now has a "NON-BUGS" section which explains some
|
||
symptoms that look like bugs but aren't. The explanations of the "%k"
|
||
and "%b" directives to "find -printf" have been imrpoved.
|
||
|
||
|
||
* Major changes in release 4.2.21, 2005-06-07
|
||
** Functional Changes to find
|
||
|
||
The GNU extension "find ... -perm +MODE" has been withdrawn because it
|
||
is incompatible with POSIX in obscure cases like "find ... -perm ++r".
|
||
Use the new syntax "find ... -perm /MODE" instead. Old usages will
|
||
still continue to work, so long as they don't conflict with POSIX.
|
||
|
||
If the output is going to a terminal, the -print, -fprint, -printf and
|
||
-fprintf actions now quote "unusual" characters to prevent unwanted
|
||
effects on the terminal. See "Unusual Characters in File Names" for
|
||
further details. There is no change to the behaviour when the output
|
||
is not going to a terminal. The locate program does the same thing,
|
||
unless the -0 option is in effect (in which case the filenames are
|
||
printed as-is).
|
||
|
||
** Functional Changes to locate
|
||
|
||
The locate command will now read each locate database at most once.
|
||
This means that if you are using multiple databases and are searching
|
||
for more than one name, the results will now be printed in a different
|
||
order (and if you specified a small limit with --limit, you may get a
|
||
different set of results).
|
||
|
||
A new option '--print' for locate causes it to print the matching
|
||
results even if the '--count' or '--statistics' option is in effect.
|
||
|
||
** Bug Fixes
|
||
find /blah/blah/blah -depth -empty now works once again.
|
||
|
||
The -regex and -iregex tests of find now correctly accept POSIX Basic
|
||
Regular Expressions. (Savannah bug #12999)
|
||
|
||
The updatedb program now works on systems where "su" does not support
|
||
the "-s" option, for example Solaris.
|
||
|
||
* Major changes in release 4.2.20, 2005-03-17
|
||
** Internationalization and Localization
|
||
Updated Vietnamese and Dutch translations.
|
||
|
||
** Bug Fixes
|
||
Minor bugfix affecting only those who compile from the CVS repository,
|
||
as opposed to those who compile from the source releases.
|
||
|
||
* Major changes in release 4.2.19, 2005-03-07
|
||
** Bug Fixes
|
||
|
||
find should now no longer hang on systems which lack the O_NOFOLLOW
|
||
flag to open(2) and which are clients of an unresponsive NFS server
|
||
(Savannah bug #12044).
|
||
|
||
We now avoid inappropriately failing for "find -L foo" or "find -H
|
||
foo" if foo is a symbolic link (Savannah bug #12181). Previously we
|
||
used to fail with the error message "Too many levels of symbolic
|
||
links".
|
||
|
||
"find . -false -exec foo {} +" no longer runs an extra instance of foo
|
||
when find exits (Savannah bug #12230).
|
||
|
||
If the chdir() safety check fails but we can no longer get back to
|
||
where we started, exit with an explanatory (fatal) error message.
|
||
This does not happen on GNU/Linux and FreeBSD because the safety check
|
||
is not needed (the security problem the safety check protects against
|
||
is prevented in a cleaner way on those systems).
|
||
|
||
"make distclean" no longer deletes regex.c (which "make all" needs).
|
||
|
||
** Functionality Changes
|
||
"find -printf "%h\n" will now print "." for files in the current directory.
|
||
Previously it printed nothing (but there was a bug in the %h
|
||
implementation anyway). This fixes Savannah bug #12085.
|
||
|
||
Should now build (again) on non-C99-compliant systems.
|
||
|
||
** Documentation enhancements
|
||
Fixed some typos and clarified wording in "Working with automounters".
|
||
|
||
** Internationalization and Localization
|
||
New Vietnamese message translation.
|
||
|
||
* Major changes in release 4.2.18, 2005-02-16
|
||
** Bug Fixes
|
||
*** "find -depth" was missing out non-leaf directories when they contain
|
||
non-directories. This affected findutils releases 4.2.15,
|
||
4.2.16 and 4.2.17, but the bug is now fixed.
|
||
*** Find no longer hangs on systems which are clients of unresponsive
|
||
NFS servers.
|
||
** Documentation improvements
|
||
*** Improvements and corrections to the find.1 manpage, including corrections to the descriptions of -H and -L.
|
||
|
||
* Major changes in release 4.2.17, 2005-02-08
|
||
** Bug Fixes
|
||
*** bug #11861 undefined symbol "basename" on IRIX 5.3
|
||
*** bug #11865 xargs -i regression (as compared to findutils-4.2.12)
|
||
*** bug #11866 Typo in pred_okdir renders it useless (affecting 4.2.16 only)
|
||
*** patch #3723 fix recent process_top_path change (for -execdir on /)
|
||
*** Fixing bug #11866 and applying patch #3723 made -execdir work much better.
|
||
*** find bar/baz/ugh now works again if baz is a symbolic link (broken
|
||
in 4.2.15).
|
||
|
||
* Major changes in release 4.2.16, 2005-02-05
|
||
** Functionality Changes
|
||
*** Updated the message catalogues for the translated messages.
|
||
*** The subfs filesystem is now treated the same as the autofs
|
||
filesystem is.
|
||
*** New translations: Belarusian, Catalan, Greek, Esperanto,
|
||
Finnish, Irish, Croatian, Hungarian, Japanese, Luganda,
|
||
Malay, Romanian, Slovenian, Serbian, Chinese (simplified).
|
||
|
||
** Bug Fixes
|
||
*** The -execdir action now works correctly for files named on the
|
||
command line.
|
||
|
||
* Major changes in release 4.2.15, 2005-01-29
|
||
** Functionality Changes
|
||
*** locate now supports matching regular expression (--regex).
|
||
*** --enable-d_type-optimization (introduced in findutils 4.2.13) is now turned on by default.
|
||
|
||
* Major changes in release 4.2.14, 2005-01-25
|
||
** Functionality Changes
|
||
*** New options -L, -P, -H for locate. The work in the same was as the same options for find.
|
||
** Bug Fixes
|
||
*** Don't include the "findutils/find/testsuite/find.gnu" subdirectory in the
|
||
distributed tar file more than once.
|
||
*** Should now build on Solaris once again.
|
||
*** -xtype and -printf %Y now work correctly for symbolic links once again
|
||
** Documentation improvements
|
||
*** All options for "locate" are now documented
|
||
|
||
* Major changes in release 4.2.13, 2005-01-23
|
||
** Performance Enhancements
|
||
*** On Linux and some other systems, a large performance improvement,
|
||
because we can eliminate many of the calls to lstat() (in extreme
|
||
cases, 99% of them). Limited testing shows a 2x speedup on NFS
|
||
filesystems. Other systems which can make use of this enhancement
|
||
include Mac OS X and *BSD.
|
||
|
||
* Major changes in release 4.2.12, 2005-01-22
|
||
** Functionality Changes
|
||
*** find is now POSIX-compliant, as far as I know.
|
||
*** -exec ... {} + now works.
|
||
*** New actions -execdir and -okdir which are like -exec and -ok but more secure.
|
||
*** "locate -w" is now a synonym for "locate --wholepath".
|
||
*** An empty path entry in the locate database path (for example "::" in
|
||
$LOCATE_PATH or in the argument to "locate -d") is taken to mean
|
||
the default database, whose name is hard-coded in locate.
|
||
** Bug Fixes
|
||
*** If find or xargs cannot write to stdout, for example because
|
||
output is redirected to a file and the disk is full, the
|
||
relevant program will return a non-zero exit status.
|
||
|
||
* Major changes in release 4.2.11, 2004-12-12
|
||
** Bug Fixes
|
||
*** Compilation fix for systems without EOVERFLOW.
|
||
*** More helpful error message if you make a mistake with (, ), -o or -a.
|
||
** Functionality Changes
|
||
*** If you have unclosed parentheses on the find command line,
|
||
or any of a number of similar problems, find will now produce
|
||
a more helpful error message.
|
||
*** locate -b is now a synonym for locate --basename
|
||
*** locate now supports a --statistics (or -S) option, which prints some
|
||
statistics about the locate databases.
|
||
*** Implemented the -samefile option.
|
||
** Documentation improvements
|
||
*** New chapter in the manual, "Security Considerations".
|
||
*** Better documentation for -prune (Mainly thanks to Stepan Kasal)
|
||
** Bug Fixes
|
||
*** locate's options -i and -w now work with the -e option (previously a bug
|
||
prevented this).
|
||
|
||
* Major changes in release 4.2.10, 2004-12-06
|
||
** Bug Fixes
|
||
*** Portability fix for fstype.c: should now compile on UNICOS, and possibly
|
||
also produce useful results on BeOS and Dolphin, perhaps other
|
||
systems too.
|
||
|
||
* Major changes in release 4.2.9, 2004-12-05
|
||
** Functionality Changes
|
||
*** xargs no longer treats a line containing only an underscore as a logical end-of-file. To obtain the behaviour that was previously the default, use "-E_".
|
||
*** xargs now supports the POSIX options -E, -I and -L. These are synonyms
|
||
for the existing options -e, -i and -l, but the latter three are
|
||
now deprecated.
|
||
** Bug Fixes
|
||
*** xargs -n NUM now invokes a command as soon as it has NUM arguments.
|
||
Previously, it waited until NUM+1 items had been read, and then
|
||
invoked the command with NUM arguments, saving the remaining one
|
||
for next time.
|
||
*** If "find -L" discovers a symbolic link loop, an error message is issued.
|
||
*** If you specify a directory on the find command line, but -prune
|
||
is applied to it, find will no longer chdir() into it anyway.
|
||
** Documentation improvements
|
||
*** The precise interpretation of the arguments to the -atime, -ctime
|
||
and similar tests in find has been documented more clearly.
|
||
|
||
* Major changes in release 4.2.8, 2004-11-24
|
||
*** Bugfix to the findutils 4.2.7 automount handling on Solaris. This
|
||
worked to some extent in findutils-4.2.7, but is much improved in
|
||
findutils-4.2.8.
|
||
|
||
* Major changes in release 4.2.7, 2004-11-21
|
||
** Functionality Changes
|
||
*** xargs can now read a list of arguments from a named file, allowing
|
||
the invoked program to use the same stdin as xargs started with
|
||
(for example ``xargs --arg-file=todo emacs'').
|
||
** Documentation improvements
|
||
*** The Texinfo manual now has an extra chapter, "Error Messages". Most
|
||
error messages are self-explanatory, but some of the ones which
|
||
are not are explained in this chapter.
|
||
** Bug Fixes
|
||
*** Avoid trying to link against -lsun on UNICOS, which doesn't need it or
|
||
have it.
|
||
*** Bugfix to the findutils 4.2.6 automount handling (which hadn't been enabled
|
||
on Solaris).
|
||
*** Reenabled internationalisation support (which had been accidentally
|
||
disabled in findutils-4.2.5).
|
||
|
||
* Major changes in release 4.2.6, 2004-11-21
|
||
** Bug Fixes
|
||
*** find now copes rather better when a directory appears to change just as
|
||
it is about to start examining it, which happens with automount.
|
||
This is because automount mounts filesystems as you change
|
||
directory into them. This should resolve Savannah bugs #3998,
|
||
#9043.
|
||
|
||
* Major changes in release 4.2.5, 2004-11-11
|
||
** Functionality Changes
|
||
*** The POSIX options -H and -L are supported. These control whether or not
|
||
find will follow symbolic links.
|
||
*** The BSD option -P is also now supported (though in any case
|
||
it is the default).
|
||
** Documentation improvements
|
||
*** Better documentation for "xargs -i".
|
||
** Bug Fixes
|
||
*** "make install" now respects DESTDIR when generating localstatedir.
|
||
(this is only relevant if you are installing to some location
|
||
other than the one that you indictaed when you ran "configure").
|
||
*** Compatible with automake versions 1.8 and 1.9.
|
||
*** Build problems on UNICOS now fixed, though the linker will still generate
|
||
warnings because we try to link with the nonexistent library
|
||
"-lsun". Edit $(LIBS) to work around this problem.
|
||
|
||
* Major changes in release 4.2.4, 2004-11-08
|
||
** Functionality Changes
|
||
*** If your system sort command has a working "-z" option, updatedb will
|
||
now correctly handle newline characters in filenames (as will
|
||
locate).
|
||
*** xargs now uses 128Kb of command line by default (less if the system
|
||
doesn't support that much).
|
||
*** If you specify a 'find' option after non-option, a warning message
|
||
is now issued. Options should be specified immediately after the
|
||
list of paths to search. These warnings are enabled if you
|
||
specify the -warn option, or if stdin is a tty. They are diabled
|
||
by the use of the -nowarn option.
|
||
*** Like find, the locate program now supports an option --null (short form -0)
|
||
which changes the result separator from newline to NULL.
|
||
*** Locate supports the option -c (long form --count) which suppresses normal
|
||
output but prints on stdout the number of results produced (like
|
||
grep -c).
|
||
*** Locate supports the option -l (long form --limit) which limits the
|
||
number of results. This is useful if you only want to find out if
|
||
there are copies of a certain file on the system, but don't want
|
||
to wait for the entire locate database to be searched.
|
||
*** Locate now has an option --basename which forces the specified pattern to
|
||
be matched against the basename of the entries in the locate
|
||
database, rather than the whole name. The default behaviour
|
||
(matching against the whole name of the file including all the
|
||
parent directory names) corresponds to the option --wholename.
|
||
*** updatedb has a new option, --findoptions, that can be used to
|
||
pass extra options through to the find command that it uses.
|
||
** Bug Fixes
|
||
*** "find -printf '%H\n'" now works (rather than segfaulting) on
|
||
systems that have non-writable string constants.
|
||
*** Better POSIX compliance for the -s option to xargs (out of range
|
||
values should just result in bounding to the correct range, not an
|
||
error, so now we just print a warning message and adjust the
|
||
value).
|
||
*** Corrected section numbers of manual page cross-references
|
||
|
||
* Major changes in release 4.2.3, 2004-10-30
|
||
** Functionality Changes
|
||
*** Added new action -delete which deletes things that find matches.
|
||
*** Added new action -quit which causes find to exit immediately.
|
||
*** A new format directive '%D' for "find -printf" prints the device number.
|
||
*** The -ls predicate no longer truncates user or group names.
|
||
*** Added new option "-d" which is a synonym for "-depth" for compatibility
|
||
with Mac OS, OpenBSD and FreeBSD. This option is already
|
||
deprecated since the POSIX standard specifies "-depth".
|
||
*** Added two new format specifiers to the -printf action; these are
|
||
%y and %Y. They indicate the type of the file as a single letter;
|
||
these are the same latters as are used by the "-type" test.
|
||
*** If a parent directory changes during the execution of find,
|
||
the error message we issue identifies the nature of the change
|
||
(for example the previous and current inode numbers of the
|
||
directory we've just returned out of).
|
||
** Other Changes
|
||
*** Non-functional code changes to silence compiler warnings.
|
||
|
||
* Major changes in release 4.2.2, 2004-10-24
|
||
** Documentation improvements
|
||
*** "find ... -exec {}+" is not yet supported.
|
||
** Bug Fixes
|
||
*** Fixed compilation problems on Solaris, RedHat EL AS 2.1, Irix, AIX
|
||
*** Work around possible compiler bug on HP-UX 11.23 for ia64
|
||
*** The built-in internationalisation support now works again.
|
||
** Other Changes
|
||
*** We now import the gnulib source in the way it is intended to be used,
|
||
which means among other things that we only have one config.h file
|
||
now.
|
||
*** Functions which findutils requires but which are not present in
|
||
gnulib are now defined in "libfind.a". This is in the lib
|
||
directory, while gnulib is in the gnulib subdirectory.
|
||
*** Fixed a typo in the address of the FSF in many of the file headers.
|
||
|
||
* Major changes in release 4.2.1, 2004-10-17
|
||
** Bug Fixes
|
||
*** 'find -name \*bar now matches .foobar, because the POSIX standard
|
||
requires it, as explained at
|
||
http://standards.ieee.org/reading/ieee/interp/1003-2-92_int/pasc-1003.2-126.html
|
||
|
||
* Major changes in release 4.2.1, 2004-10-17
|
||
** Bug Fixes
|
||
*** find -iname now works correctly on systems that have an fnmatch() function
|
||
that does not support FNM_CASEFOLD
|
||
*** updatedb now uses signal names for "trap" instead of numbers,
|
||
as per bug #9465 (see http://www.opengroup.org/onlinepubs/009695399/utilities/trap.html)
|
||
*** Better support for systems lacking intmax_t
|
||
** Other Changes
|
||
**** findutils now uses a newer version of gnulib (dated 2004-10-17).
|
||
|
||
* Major changes in release 4.2.0, 2003-06-14
|
||
** Functionality Changes
|
||
*** xargs now works better when the environment variables are very extensive.
|
||
The xargs command used to run into difficulties if the environment
|
||
data contained more than 20480 bytes.
|
||
*** New options -wholename and -iwholename
|
||
As per the GNU Projecvt coding standard, These are preferred over
|
||
the -path and -ipath options. Using -ipath now generates a warning,
|
||
though -path does not (since HPUX also offers -path).
|
||
*** The environment variable FIND_BLOCK_SIZE is now ignored.
|
||
*** New option "-ignore_readdir_race"
|
||
silences an error messages which would otherwise occur if a file is removed
|
||
after find has read it from the directory using readdir(), but before
|
||
find stats the file. There is also an option
|
||
-noignore_readdir_race which has the opposite effect.
|
||
** Documentation improvements
|
||
*** The -size option of find is now documented in more detail
|
||
*** POSIX compliance and GNU extensions
|
||
The find manual page also now includes a section
|
||
which describes the relationship between the features of GNU
|
||
find and the POSIX standard. Some other small improvements
|
||
to the find and xargs manual pages have been made.
|
||
*** The argument to the -fprintf directive is now better documented.
|
||
The escape code '\0' for the `-printf' predicate of find is now
|
||
documented, and the documentation for the %k and %b specifiers
|
||
has been improved.
|
||
*** xargs -i is now more clearly documented.
|
||
** Bug Fixes
|
||
*** locate 'pa*d' will now find /etc/passwd (if it exists, of course)
|
||
*** xargs standard input is not inherited by child processes
|
||
If the command invoked by xargs reads from its standard input,
|
||
it now gets nothing, as opposed to stealing data from the
|
||
list of files that xargs is trying to read.
|
||
*** Better support for 64-bit systems.
|
||
*** The command "xargs -i -n1" now works as one might expect,
|
||
I think this is a strange thing to want to do.
|
||
*** Arguments to find -mtime that are too large are now diagnosed
|
||
Previously, this just used to cause find just to do the wrong thing.
|
||
*** updatedb is now somewhat more robust
|
||
The updatedb shell script now does not generate an empty
|
||
database if it fails.
|
||
*** Sanity-check on some data read from locatedb
|
||
Locate now detects some types of file corruption in the
|
||
locate database.
|
||
*** The %k format specifier for -fprintf now works
|
||
This was broken in 4.1.20.
|
||
|
||
* Major changes in release 4.1.20, 2003-06-14:
|
||
** New maintainer, James Youngman <jay@gnu.org>
|
||
** As far as I know, this is the first release after 4.1.7, but I've left
|
||
a gap just in case.
|
||
** We now use an "imported" version of gnulib, rather than including
|
||
a copy of the gnulib code in our CVS repository. There are no
|
||
differences in the build instructions, though (unless you are
|
||
building directly from CVS, in which case please read the file
|
||
README-CVS).
|
||
** There are no (deliberate) functional changes in version 4.1.20.
|
||
|
||
* Major changes in release 4.1.7, 2001-05-20:
|
||
fix problem so that default "-print" is added when "-prune" is used.
|
||
security fixes related to directories changing while find is executing.
|
||
|
||
* Major changes in release 4.1.6, 2000-10-10:
|
||
correct bug in prune.
|
||
added --ignore-case option for locate
|
||
|
||
* Major changes in release 4.1.5, 2000-04-12:
|
||
Add support for large files
|
||
|
||
* Major changes in release 4.1.4, 2000-02-26:
|
||
bug fixes, more up-to-date languages.
|
||
|
||
* Major changes in release 4.1.3, 2000-01-27:
|
||
added internationalization and localization.
|
||
|
||
* Major changes in release 4.1.2, 2000-01-18:
|
||
None.
|
||
|
||
* Major changes in release 4.1.1, 1999-08-8:
|
||
attempt at successful compilation on many platforms after years of neglect
|
||
"--existing" option added to locate "--prunefs" option added to updatedb
|
||
|
||
* Major changes in release 4.1, 1994-11-3:
|
||
|
||
** Distribution renamed to findutils.
|
||
** updatedb is now a user command, installed in $exec_prefix/bin
|
||
instead of $exec_prefix/libexec.
|
||
** A few problems in Makefiles and testsuite corrected.
|
||
|
||
* Major changes in release 4.0, 1994-11-2:
|
||
|
||
** Documentation:
|
||
*** Texinfo manual.
|
||
*** Man page for updatedb.
|
||
*** Man page for the locate database formats.
|
||
|
||
** find:
|
||
*** Takes less CPU time on long paths, because it uses chdir to descend
|
||
trees, so it does fewer inode lookups.
|
||
*** Does not get trapped in symbolic link loops when -follow is given.
|
||
*** Supports "-fstype afs" if you have /afs and /usr/afsws/include
|
||
and you configure using the --with-afs option.
|
||
*** New action -fls FILE; like -ls but writes to FILE.
|
||
|
||
** locate:
|
||
*** Supports a new database format, which is 8-bit clean and
|
||
allows machines with different byte orderings and integer sizes to
|
||
share the databases. The new locate can also detect and read the
|
||
old database format automatically. The new databases are typically
|
||
30% or more larger than the old ones (due to allowing all 8 bits in
|
||
file names). Search times are approximately the same, or faster on
|
||
some systems.
|
||
*** Warns if a file name database is more than 8 days old.
|
||
|
||
** updatedb:
|
||
*** Takes command-line options.
|
||
|
||
** xargs:
|
||
*** Performance improved 10-20%.
|
||
*** The EOF string is not used when -0 is given.
|
||
*** Now has a test suite. Some minor bugs fixed as a result.
|
||
|
||
* Major changes in release 3.8, 1993-03-29:
|
||
|
||
** case insensitive versions of -lname, -name, -path, -regex:
|
||
-ilname, -iname, -ipath, -iregex
|
||
** %F directive for -printf, -fprintf to print file system type
|
||
|
||
* Major changes in release 3.7:
|
||
|
||
** locate can search multiple databases
|
||
** locate has an option to specify the database path
|
||
** updatedb no longer goes into an infinite loop with some versions of tail
|
||
|
||
* No NEWS was kept for earlier releases. Known release dates include:
|
||
** release 3.2, 1991-08-28
|
||
** release 3.1, 1991-08-21
|
||
** release 3.0, 1991-08-21
|
||
** release 2.2, 1991-04-05
|
||
** release 2.1, 1991-01-01
|
||
** release 2.0, 1990-11-20
|
||
** release 1.2, 1990-07-03
|
||
** release 1.1, 1990-06-24
|
||
** release 1.0, 1990-06-22
|
||
** beginning of findutils history, 1987-02-21
|
||
|
||
--//--
|
||
This is used by Emacs' spell checker ispell.el:
|
||
|
||
LocalWords: ansi knr strftime xargs updatedb sh fnmatch hin strcpy
|
||
LocalWords: lib getstr getline frcode bigram texi depcomp automake
|
||
LocalWords: strncasecmp strcasecmp LIBOBJS FUNC prunefs allout libexec
|
||
LocalWords: testsuite Texinfo chdir inode fstype afs fls ls EOF lname
|
||
LocalWords: regex ilname iname ipath iregex printf fprintf
|
||
|
||
Copyright (C) 1996, 1999-2001, 2003-2016 Free Software Foundation, Inc.
|
||
|
||
Permission is granted to copy, distribute and/or modify this document
|
||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||
any later version published by the Free Software Foundation; with no
|
||
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||
A copy of the license is included in the ``GNU Free Documentation
|
||
License'' file as part of this distribution.
|