Findutils help you locate files on your system.
Command find searches through a hierarchy of directories looking for files
which match a certain set of criteria (filename patterns and many others).
Command xargs builds and executes command lines from standard input arguments
(often lists of file names generated by the find command).
Command locate scans a database of filenames and displays matches.
Command updatedb builds the database for locate.
For more information see the project home page:
https://www.gnu.org/software/findutils/
The following package has been upgraded in the Cygwin distribution:
- findutils 4.11
For details of changes since the previous Cygwin release see below or
after installation read /usr/share/doc/findutils/NEWS:
https://git.savannah.gnu.org/cgit/findutils.git/tree/NEWS
2026-07-11 4.11
Bug Fixes
- find no longer crashes when diagnosing a directory cycle (without a symlink
being involved pointing to a parent directory).
[Bug present since the FTS implementation.]
- 'find -used' now behaves correctly on OpenBSD 7.8 with difftime(3) underflow
bug in the C library (already fixed there) when the access time of a file is
identical to its change time.
- 'find -ignore_readdir_race' now better handles races between FTS reading a
directory and visiting its entries when the file or directory was meanwhile
removed.
- To fix a POSIX compatibility bug, -exec foo Z{} + is no longer a
complete predicate, because '+' is only a terminator when it follows
an argument which is exactly '{}'. The findutils documentation
already states this, and now find's behaviour matches the
documentation.
- 'updatedb.sh' now properly handles the variables for the 'find' and 'frcode'
utilities, and hence avoids command injection.
Changes in find
- As announced since the release of 4.7.0 (2019) and mandated by POSIX 2024,
the behaviour of the -mount option changed: while it was a mere alias for
the -xdev option to prevent descending into directories of another device,
the -mount option now makes find(1) ignore files on another device, i.e.,
'find -mount' will skip the entry of active mount points already.
Example, assuming the PROC filesystem is mounted on '/proc':
$ find / -mount -path /proc -print
$ find / -xdev -path /proc -print
/proc
- The actions -execdir and -okdir now refuse the '{}' replacement in the zeroth
argument of the command to be run. While POSIX allows this for -exec, this is
deemed insecure as an attacker could influence which files could be found.
- 'find -regex' with the default or the 'emacs' regextype now aligns better with
Emacs behaviour, and therefore e.g. supports character classes:
$ touch 123 && find -regex './12[[:digit:]]'
./123
- find now issues a warning when the punctuation operators '(', ')', '!' and ','
are passed with a leading dash, e.g. '-!'. Future releases will not accept
that any more. Accepting that was rather a bug "since the beginning".
Improvements
- xargs now gives a better error diagnostic when executing the given command
failed.
Documentation Changes
- The most recent version of the POSIX standard (IEEE Std 1003.1-2024,
also known as The Open Group Base Specifications, Issue 8) has
standardised "find -print0" and "xargs -0".
Our documentation now points this out.
Similarly for 'find -iname'.
- The code example for "Finding the Shallowest Instance" in the Texinfo
manual and the corresponding one in the EXAMPLES section in the find.1
man page have been fixed.
- Translators contributed numerous fixes for issues in the find.1 man page.
- The list of actions that suppress the default -print action has been
supplemented with the missing '-print0' and '-fprint0' actions.
- The manual pages have been updated to give better and/or more
consistent output with manpage formatters other than GNU roff.
Translations
- Updated the following translations:
Arabic, Brazilian Portuguese, Bulgarian, Chinese (simplified),
Croatian, Czech, Dutch, Estonian, French, German, Indonesian, Korean,
Polish, Portuguese, Romanian, Spanish, Swedish, Ukrainian.
Future Changes
- A future release will remove the warning message find prints about the
2007 change in the meaning of "-perm /000".
Everybody who is likely to care probably knows about this change by now.
--
*** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO ***
The easiest way to unsubscribe is to visit
<https://cygwin.com/mailman/options/cygwin-announce>, and click 'Unsubscribe'.
If you need more information on unsubscribing, start reading here:
<https://sourceware.org/lists.html#unsubscribe>.