Skip to content

Releases: tavianator/bfs

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

Version 1.7

22 Apr 13:18
1.7
Compare
Choose a tag to compare
  • Fixed -ls printing numeric IDs instead of user/group names in large directory trees
  • Cached the user and group tables for a performance boost
  • Fixed interpretation of "default" ACLs
  • Implemented -s flag to sort results

Version 1.6

25 Feb 16:19
1.6
Compare
Choose a tag to compare
  • Implemented -newerXt (explicit reference times), -since, -asince, etc.
  • Fixed -empty to skip special files (pipes, devices, sockets, etc.)

Version 1.5.2

09 Jan 15:21
1.5.2
Compare
Choose a tag to compare
  • Fixed the build on NetBSD
  • Added support for NFSv4 ACLs on FreeBSD
  • Added a + after the file mode for files with ACLs in -ls
  • Supported more file types (whiteouts, doors) in symbolic modes for -ls/-printf %M
  • Implemented -xattr on FreeBSD