Releases: tavianator/bfs
Version 2.6
-
Fixed deleting large NFS directories on FreeBSD (#67).
-
Added support for a
bfs
-specificBFS_COLORS
environment variable. -
Refactored the build system, directory structure, and documentation (#88, #89, #91). Thanks @ElectronicsArchiver!
-
Added
zsh
completion (#86). Thanks @VorpalBlade! -
Updated the default color scheme to match GNU coreutils 9.1. Files with capabilities set are no longer colored differently by default, resulting in a significant performance improvement.
-
Became less aggressive at triggering automounts
-
Added support for out-of-tree builds with
BUILDDIR
Version 2.5
-
Added compiler-style context for errors and warnings. Errors look like this:
$ bfs -nam needle bfs: error: bfs -nam needle bfs: error: ~~~~ bfs: error: Unknown argument; did you mean -name?
and warnings look like this:
$ bfs -print -name 'needle' bfs: warning: bfs -print -name needle bfs: warning: ~~~~~~~~~~~~ bfs: warning: The result of this expression is ignored.
-
Updated from C99 to C11
-
Fixed the tests when built against musl
-
Fixed a build error reported on Manjaro
Version 2.4.1
-
Fixed the build when Oniguruma is not installed in the default search paths (#82)
-
Fixed string encoding bugs with Oniguruma enabled
-
Fixed regex error reporting bugs
Version 2.4
-
Added the Oniguruma regular expression library as an (optional, but enabled by default) dependency (#81). Oniguruma supports more regular expression syntax types than the POSIX regex API, and often performs better. To build
bfs
without this new dependency, domake WITH_ONIGURUMA=
to disable it. Thanks @data-man! -
Added support for the
ed
,emacs
,grep
, andsed
regular expression types (#21) -
Before executing a process with
-exec[dir]
/-ok[dir]
,bfs
now ensures all output streams are flushed. Previously, I/O from subprocesses could be interleaved unpredictably with buffered I/O frombfs
itself.
Version 2.3.1
-
Fixed the build on Debian kFreeBSD
-
Fixed a crash on GNU Hurd when piping bfs's output
-
Fixed a double-
close()
on non-Linux platforms iffdopendir()
fails -
Reduced memory allocations on startup
Version 2.3
-
More tweaks to
PAGER
andLESS
handling forbfs -help
(#76) -
Use 512-byte blocks for
-ls
whenPOSIXLY_CORRECT
is set (#77) -
Implemented
-files0-from FILE
to take a list of'\0'
-separated starting paths.
GNU find will implement the same feature in an upcoming release. -
Added colors to
-printf
output (#62) -
Faster recovery from
E2BIG
during-exec
Version 2.2.1
-
Fixed some incorrect coloring of broken links when links are being followed (
-L
) -
Made the tests work when run as root by dropping privileges.
This may be helpful for certain packaging or CI environments, but is not recommended. -
Treat empty
PAGER
andLESS
environment variables like they're unset, forbfs -help
(#71).
Thanks @markus-oberhumer! -
The soft
RLIMIT_NOFILE
is now raised automatically to a fairly large value when possible.
This provides a minor performance benefit for large directory trees. -
Implemented time units for
-mtime
as found in FreeBSD find (#75)
Version 2.2
-
Fixed
-hidden
on hidden start paths -
Added a Bash completion script. Thanks @bmundt6!
-
Fixed rounding in
-used
. Corresponding fixes were made to GNU find in version 4.8.0. -
Optimized the open directory representation. On Linux, much libc overhead is bypassed by issuing syscalls directly. On all platforms, a few fewer syscalls and open file descriptors will be used.
-
Implemented
-flags
from BSD find
Version 2.1
-
Added a new
-status
option that displays the search progress in a bar at the bottom of the terminal -
Fixed an optimizer bug introduced in version 2.0 that affected some combinations of
-user
/-group
and-nouser
/-nogroup
Version 2.0
-
#8: New
-exclude <expression>
syntax to more easily and reliably filter out paths.
For example:bfs -name config -exclude -name .git
will find all files named
config
, without searching any directories (or files) named.git
.
In this case, the same effect could have been achieved (more awkwardly) with-prune
:bfs ! \( -name .git -prune \) -name config
But
-exclude
will work in more cases:# -exclude works with -depth, while -prune doesn't: bfs -depth -name config -exclude -name .git # -exclude applies even to paths below the minimum depth: bfs -mindepth 3 -name config -exclude -name .git
-
#30:
-nohidden
is now equivalent to-exclude -hidden
.
This changes the behavior of command lines likebfs -type f -nohidden
to do what was intended.
-
Optimized the iterative deepening (
-S ids
) implementation -
Added a new search strategy: exponential deepening search (
-S eds
).
This strategy provides many of the benefits of iterative deepening, but much faster due to fewer re-traversals. -
Fixed an optimizer bug that could skip
-empty
/-xtype
if they didn't always lead to an action -
Implemented
-xattrname
to find files with a particular extended attribute (from macOS find) -
Made
-printf %l
still respect the width specifier (e.g.%10l
) for non-links, to match GNU find -
Made
bfs
fail if-color
is given explicitly andLS_COLORS
can't be parsed, rather than falling back to non-colored output