Skip to content

Releases: tavianator/bfs

Version 2.6

21 May 21:06
2.6
Compare
Choose a tag to compare
  • Fixed deleting large NFS directories on FreeBSD (#67).

  • Added support for a bfs-specific BFS_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

27 Mar 18:23
2.5
Compare
Choose a tag to compare
  • 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

24 Feb 22:46
2.4.1
Compare
Choose a tag to compare
  • 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

22 Feb 17:22
2.4
Compare
Choose a tag to compare
  • 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, do make WITH_ONIGURUMA= to disable it. Thanks @data-man!

  • Added support for the ed, emacs, grep, and sed 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 from bfs itself.

Version 2.3.1

21 Jan 16:43
2.3.1
Compare
Choose a tag to compare
  • 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 if fdopendir() fails

  • Reduced memory allocations on startup

Version 2.3

25 Nov 17:18
2.3
Compare
Choose a tag to compare
  • More tweaks to PAGER and LESS handling for bfs -help (#76)

  • Use 512-byte blocks for -ls when POSIXLY_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

02 Jun 18:52
2.2.1
Compare
Choose a tag to compare
  • 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 and LESS environment variables like they're unset, for bfs -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

06 Mar 20:47
2.2
Compare
Choose a tag to compare
  • 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

11 Nov 18:26
2.1
Compare
Choose a tag to compare
  • 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

14 Oct 16:22
2.0
Compare
Choose a tag to compare
  • #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 like

    bfs -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 and LS_COLORS can't be parsed, rather than falling back to non-colored output