Repository navigation
Releases
Version 4.1.7
Changes
- Parallel depth-first searches (
-S dfs -j3and up) now stay much closer to depth-first order, rather than degrading towards breadth-first (c650271c)
Bug fixes
-
Fixed the traversal order of
-S dfswhenstat()calls weren't needed, which was not actually depth-first. The bug was originally introduced in bfs 3.1 (February 6, 2024). (fe6e2867) -
Fixed
-permwithXin symbolic modes likeu+x,g+X, which now takes execute bits set earlier in the same mode into account. The bug had been present since-permwas implemented in bfs 0.84 (October 29, 2016). (c9be2981) -
Fixed
-permwith=in symbolic modes likeu+s,u=roro+t,o=r, which failed to clear the set-user-ID, set-group-ID, and sticky bits. As with GNUchmod, the set-user-ID and set-group-ID bits are still preserved for directories. The bug had been present since-permwas implemented in bfs 0.84 (October 29, 2016). (efdf3ad5) -
Fixed and extended the mapping from C locale charsets to Oniguruma encodings for
-regex(c3794ef0) -
Fixed a missing error message when
-files0-fromfailed to read from its file. The bug was originally introduced in bfs 2.6.3 (January 31, 2023). (17f5165c) -
Fixed a redundant error message when closing a file after a write error had already been reported, as in
$ bfs -print -exec true \; >/dev/fullThe bug was originally introduced in bfs 3.3 (May 28, 2024). (
2c970dbd)
Version 4.1.6
Bug fixes
-
Fixed optimizer bugs that could produce wrong results for expressions involving the comma operator, like
$ bfs \( -type f -o -type d \) , \! -type dThe bugs were originally introduced in bfs 3.1 (February 6, 2024). (
9b36c6bf,b6a703a3) -
Fixed
-regexwith Oniguruma when a partial match was found before a complete one. For example,-regex '.*/a*\(ab\)*'failed to match./aab. The bug was originally introduced in bfs 2.4 (February 22, 2022). (90bd8929) -
Fixed
-fstypeon Linux bind mounts of the same file system. The bug was originally introduced in bfs 4.0.6 (February 26, 2025). (6fd62172) -
Fixed
-permwith multiple actions in a single symbolic mode, like+r+w, which only applied the file creation mask to the first action. The bug was originally introduced in bfs 4.0 (August 16, 2024). (0b16a06b) -
Fixed
-hiddenand-nohiddenwith root paths like./or../, which are now treated the same as.and... The bug was originally introduced in bfs 2.2 (March 6, 2021). (95e9fec5) -
Signals that were ignored at startup (for example by
nohup) now stay ignored, both bybfsitself and by any child processes it spawns. The bug was originally introduced in bfs 3.3 (May 28, 2024). (3da97069) -
Fixed
-execdir ... {} +detection of a changed working directory with-depthand multiple root paths. The bug had been present since-execdirwas implemented in bfs 1.0 (April 24, 2017). (c855df75) -
Fixed an assertion failure after
-execdirfailed to open a parent directory.-execdirnow also works in directories that are searchable but not readable. (f330325b) -
Fixed
-exec, etc. attempting to execute a directory if it appeared earlier in$PATHthan the actual binary. The bug was originally introduced in bfs 2.3 (November 25, 2021). (a44963fe) -
Fixed integer overflow in
-mtimeand friends with very large time units, which are now reported as an error (b7bd6b7d) -
Fixed a potential crash when hiding the
-statusbar withSIGINFO/SIGUSR1. The bug was originally introduced in bfs 4.0.3 (October 22, 2024). (f63154bf) -
Fixed a use-after-free in
-D execwith commands like-exec {} +. The bug was originally introduced in bfs 1.2.3 (July 15, 2018). (d68703db) -
Fixed spurious
EMFILEerrors by waiting for pending I/O before retrying. The bug was originally introduced in bfs 3.0 (July 13, 2023). (b5361674) -
Fixed duplicate error messages for files that couldn't be
stat()ed with-S {ids,eds}(b79d51a4) -
Fixed error messages when
fork()fails. The bug was originally introduced in bfs 4.0 (August 16, 2024). (07ddac5c) -
Fixed coloring of dataless files on macOS (
a96e7570) -
Fixed
-aclon DragonFly BSD (fc37d66c)
Version 4.1.5
Changes
-
bfsnow builds a static library as part of the build process. For release builds with LTO, some systems will require anarwrapper to find the linker plugin, such as$ ./configure --enable-release AR=gcc-ar(or
AR=llvm-arfor Clang builds). Most modern systems will not require overriding the defaultAR. (9d6880c2) -
As hardening against some race conditions and buggy file systems,
bfswill refuse to follow symbolic links in more cases (18415819)
Bug fixes
-
Fixed an optimizer bug that assumed if
-samefiledidn't match,-inumcouldn't match either. This is false for files on different mount points, which is why (device, inode) number pairs are necessary to uniquely identify a file. The bug was originally introduced in bfs 3.1 (February 6, 2024). (1537b7e6) -
Added some missing primary expression types to various shell completions (
fa35eb9c) -
Fixed a memory leak in
-context(568c1bd0)
Full Changelog: 4.1.4...4.1.5
Version 4.1.4
Bug fixes
-
Fixed an optimizer bug that ignored the units of
-sizearguments, meaning$ bfs -size 1k -size 1024cwould claim that
bfs: warning: bfs -size 1k -size 1024c bfs: warning: ~~~~~~~~~~~ bfs: warning: This expression is always false.and return no results.
The bug was originally introduced in bfs 1.3.3 (February 10, 2019) (
a6aecebe)
Version 4.1.3
Version 4.1.2
Bug fixes
-
Fixed
./configure-time detection ofsysctlbyname()on FreeBSD (#219) -
Bumped the default version number, which was missed in 4.1.1
4.1.1
Bug fixes
-
Fixed
./configure CFLAGS=...being overridden by auto-detected flags (70341236) -
Fixed the build on Android < 11 (#215)
-
bfsnow takes system-wide open file limits into account. Previously, a handful of concurrentbfsinstances could overwhelm a system with a low global limit, particularly macOS. (6f6f760a)
Version 4.1
New features
Changes
- Switched from C17 to C23 by default. C17 is still supported as a fallback as long as your compiler supports some common extensions.
Full Changelog: 4.0.8...4.1
4.0.8
Bug fixes
-
Fixed an invalid optimization that transformed
$ bfs -user you -or -user meinto just
$ bfs -user youThe bug was originally introduced in bfs 2.0 (October 14, 2020). (#155)
Full Changelog: 4.0.7...4.0.8