1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281 |
- GNU findutils NEWS - User visible changes. -*- outline -*- (allout)
- * Noteworthy changes in release ?.? (????-??-??) [?]
- ** Documentation Changes
- The find.1 man page and the Texinfo manual now show environment variables
- in a consistent style. [#59963]
- * Noteworthy changes in release 4.8.0 (2020-01-09) [stable]
- ** Changes in xargs
- 'xargs -t' no longer outputs a trailing blank to stderr after the last argument
- of each constructed command line to be executed. [#57291]
- xargs now warns when more than one of the conflicting options --max-lines (-L,
- -l), --replace (-i/-I) and --max-args (-n) are specified on the command line.
- [#52137]
- ** Bug Fixes
- find no longer crashes when an XFS filesystem is heavily changed during the run.
- Discussed at: <https://lists.gnu.org/r/bug-gnulib/2020-04/msg00068.html>
- find -used works again. This predicate was not working properly since adding
- the support for sub-second timestamp resolution for various predicates in
- FINDUTILS_4_3_3-1 back in 2007.
- Discussed at: <https://lists.gnu.org/r/bug-findutils/2019-11/msg00010.html>
- ** Improvements
- 'find -D exec' now diagnoses all -exec, -execdir, -ok and -okdir runs including
- the call arguments and the exit code of the launched process. [#59083]
- ** Documentation Changes
- The documentation of 'find -printf %Ak' has been improved: it now refers to the
- strftime(3) documentation for a complete list of supported conversion
- specifiers, and documents the 'F' conversion specifier ('yyyy-mm-dd').
- The man pages (find.1, locate.1, locatedb.5, updatedb.1, and xargs.1) now
- consistently end with the sections "REPORTING BUGS", "COPYRIGHT" and "SEE ALSO",
- with the latter referring to the online page on the GNU web server.
- The "EXAMPLES" section in the find.1 man page now shows the examples in a better
- structure and uses consistent formatting.
- Various man page fixes - syntax issues and typos.
- [#59745, #59330, #59012, #58193, #57807, #57775]
- Other documentation changes:
- #58654: doc: clarify that 'find -perm +MODE' is unrelated to umask
- #58458: doc: improve section 'Hard links', especially fix the description
- regarding 'find -L -samefile FILE'.
- #58205: find.1: clarify double dash '--' option
- #58149: 'xargs --help' now mentions that --replace (-I, -i) splits the input
- at newline characters.
- #57025: doc: enhance description of tests accepting numeric arguments in find.1
- [see also #49640].
- #54730: Add additional valuable example of find -quit
- #48135: Fix testsuite error on Hurd and BSD related to ln
- #35253: Clarify descriptions of -printf %f, %h.
- ** Changes to the build process
- The configure option --without-fts has been removed. The attempt to use
- it stopped configure with an error message since 4.5.18 (2015) anyway.
- * Major changes in release 4.7.0, 2019-08-29
- ** 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.
- find now exits in more cases immediately after the error diagnostic, i.e.,
- without the following usage text, to make the former more eye-catching.
- find now outputs a better hint in case the user passed an unquoted shell-
- glob pattern to options like -name, i.e., when the offending argument is
- an existing file.
- find now supports the debug option '-D all' to include all of the other
- debug options at once.
- xargs now supports the -o, --open-tty option to reopen stdin as /dev/tty
- in the child process before executing the command; useful to run an
- interactive application. Added for compatibility with BSD.
- xargs now supports the GNU_FINDUTILS_FD_LEAK_CHECK environment
- variable to enable/disable fd leak check.
- 'xargs -t' (--verbose) now properly quotes each part of the command to the
- executed if needed when printing it to stderr; likewise -p (--interactive).
- ** Documentation Changes
- Prefer https:// over http:// links where possible, e.g. for '*.gnu.org' servers.
- Both find.1 and the find texinfo manual now consistently document all of the
- 'N', 'L' and '?' possibilities in '-printf %Y' output when the determination of
- the type of a symlink target fails.
- find.1 now correctly states the -prune has no effect when the -depth option is
- given. Before, it wrongly stated that -prune would return false in that case.
- Some minor documentation improvements are listed in "Bug Fixes" below.
- ** Bug Fixes
- #56820: find: improve diagnostic when a global option like -maxdepth is
- specified after another argument like a test, thus hopefully avoiding
- translation issues (at least French, German).
- #56142: doc: fix bug #56142 by specifying which actions inhibit the
- default -print.
- #55272: find: improve diagnostic when -name or -iname is used with a pattern
- containing a directory separator ('/'), suggesting to use -wholename
- or -iwholename respectively.
- #54859: doc: fix typo in 'xargs -l' examples in texinfo manual.
- Change from 'xargs -1' (minus one) to 'xargs -l' (minus El) in 3 places.
- #54838: doc: fix the examples of the -perm option in the texinfo documentation.
- The example '-perm -g+w,o+w' was misplaced.
- Bug present since FINDUTILS_4_2_27-1.
- #54262: 'find -printf "%Y"' now correctly outputs 'N' for broken symlinks
- (ENOENT or ENOTDIR). Previously, it output 'l' in such a case.
- Bug introduced while attempting to fix #29460 in version v4.5.8.
- #54171: 'find -depth' now outputs the name of unreadable directories.
- Previously, FTS-based find missed to output those entries.
- Bug present since the FTS implementation in FINDUTILS_4_3_0-1.
- #52981: find: the '-delete' action no longer complains about disappeared files
- when the '-ignore_readdir_race' option is given, too. That action will
- also returns true in such a case now.
- #52220: 'find -D' without any further argument no longer crashes.
- Bug present since the implementation of -D in FINDUTILS_4_3_1-1.
- #51304: doc: use correct IEC unit prefixes in the documentation of 'find -size'.
- find(1) uses binary-based units for the suffixes 'k', 'M', and 'G' of
- the argument of the '-size' option: 1024, 1024*1024 and 1024^3.
- Therefore, the documentation should use the correct IEC prefixes
- kibibyte, mebibyte and gibibyte respectively (or their abbreviations
- 'KiB', 'MiB' and 'GiB').
- #50758: doc: fix the description of the -perm examples matching the permission
- mode "022" in find's texinfo manual: the match is for the file's group
- and 'other' mode bits instead of for user and group.
- Bug introduced when adding the -perm examples in FINDUTILS-4.2.11.
- #50326: find no longer leaks memory for a recently added member in gnulib's
- mount list structure.
- #50259: find -printf '%h' now outputs the correct path for arguments with one or
- more trailing slashes. Previously, it would e.g. output "foo" instead
- of "." when "foo/" was passed; likewise, it would output "/user/xxx/"
- instead of "/user" when "/user/xxx//" was passed.
- Bug introduced in FINDUTILS-4.2.19.
- #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
- ** 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.
- The configure option --enable-silent-rules is the default now.
- Use --disable-silent-rules or "make V=1" to get verbose build output.
- "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.
- Maintainer builds from the Git repository now derive the version string from
- the version control system instead of using a fixed string (changed after each
- release manually). As a result, the inter-release builds can now be
- distinguished: e.g. "4.6.0.152-fe9c" is the 152th commit after the tag "v4.6.0"
- and has the Git short hash "fe9c". Builds from an unclean tree are marked with
- the suffix "-dirty".
- The translation files in the PO directory are no longer version controlled;
- instead bootstrap auto-updates them from "translationproject.org" during a
- maintainer build.
- A shell-style test framework borrowed from GNU coreutils has been added.
- This allows better tests with more control over stdin, stdout, stderr,
- signals, preparatory steps, cleanup, return code verification, root-only
- tests, etc.
- * 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 https://debbugs.gnu.org/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
- https://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 https://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-2021 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.
|