Skip to content

Releases: sharkdp/fd

v8.0.0

16 Apr 08:30
Compare
Choose a tag to compare

Features

  • Add a new -l/--list-details option to show more details about the search results. This is
    basically an alias for --exec-batch ls -l with some additional ls options.
    This can be used in order to:
    • see metadata like permissions, owner, file size, modification times (#491)
    • see symlink targets (#482)
    • achieve a deterministic output order (#324, #196, #159)
  • Add a new --max-results=<count> option to limit the number of search results, see #472, #476 and #555
    This can be useful to speed up searches in cases where you know that there are only N results.
    Using this option is also (slightly) faster than piping to head -n <count> where fd can only
    exit when it finds the search results <count> + 1.
  • Add the alias -1 for --max-results=1, see #561. (@SimplyDanny).
  • Add new --type socket and --type pipe filters, see #511.
  • Add new --min-depth <depth> and --exact-depth <depth> options in addition to the existing option
    to limit the maximum depth. See #404.
  • Support additional ANSI font styles in LS_COLORS: faint, slow blink, rapid blink, dimmed, hidden and strikethrough.

Bugfixes

  • Preserve non-UTF8 filenames: invalid UTF-8 filenames are now properly passed to child-processes
    when using --exec, --exec-batch or --list-details. In fd's output, we replace non-UTF-8
    sequences with the "�" character. However, if the output of fd goes to another process, we
    print the actual bytes of the filename. For more details, see #558 and #295.
  • LS_COLORS entries with unsupported font styles are not completely ignored, see #552

Changes

  • Colored output will now be enabled by default on older Windows versions.
    This allows the use of colored output if the terminal supports it (e.g.
    MinTTY, Git Bash). On the other hand, this will be a regression for users
    on older Windows versions with terminals that do not support ANSI escape
    sequences. Affected users can use an alias fd="fd --color=never" to
    continue using fd without colors. There is no change of behavior for
    Windows 10. See #469.
  • When using --glob in combination with --full-path, a * character does not match a path
    separation character (/ or \\) anymore. You can use ** for that. This allows things like
    fd -p -g '/some/base/path/*/*/*.txt' which would previously match to arbitrary depths (instead
    of exactly two folders below /some/base/path. See #404.
  • "Legacy" support to use fd -exec (with a single dash) has been removed. Use fd -x or
    fd --exec instead.
  • Overall improved error handling and error messages.

Other

  • Package maintainers on MacOS and Windows might think about adding (GNU) ls as an optional dependency for fd to make full use of fds new -l/--list-details option. For MacOS, fd relies on gls which should be available via coreutils.
  • Korean translation of the README, see: 한국어 (@spearkkk)

v7.5.0

22 Mar 15:38
Compare
Choose a tag to compare

Features

  • Added --one-file-system (aliases: --mount, --xdev) to not cross file system boundaries on Unix and Windows, see #507 (@FallenWarrior2k).
  • Added --base-directory to change the working directory in which fd is run, see #509 and #475 (@hajdamak).
  • fd will not use colored output if the NO_COLOR environment variable is set, see #550 and #551 (@metadave).
  • fd --exec will return exit code 1 if one of the executed commands fails, see #526 and #531 (@fusillicode and @Giuffre)

Bug Fixes

Changes

  • A flag can now be passed multiple times without producing an error, see #488 and #496 (@rootbid).
  • Search results are sorted when using the -X option to match the behaviour of piping to xargs, see #441 and #524 (@Marcoleni @crash-g).

v7.4.0

15 Sep 17:45
Compare
Choose a tag to compare

Performance improvements

  • Reduce number of stat syscalls, improving the performance for searches where file metadata is
    required (--type, --size, --changed-within, …), see #434 (@tavianator)
  • Use jemalloc by default, improving the performance for almost all searches, see #481. Note that
    Windows and *musl* builds do not profit from this.

Features

  • Added a new -g/--glob option to switch to glob-based searches (instead of regular expression
    based searches). This is accompanied by a new --regex option that can be used to switch back,
    if users want to alias fd="fd --glob". See #284
  • Added a new --path-separator <sep> option which can be useful for Windows users who
    want/need fd to use / instead of \, see #428 and #153 (@mookid)
  • Added support for hidden files on Windows, see #379
  • When fd is run with the --exec-batch/-X option, it now exposes the exit status of the
    command that was run, see #333.
  • Exit immediately when Ctrl-C has been pressed twice, see #423

Bugfixes

  • Make --changed-within/--changed-before work for directories, see #470

Other

  • Pre-built fd binaries should now be available for armhf targets, see #457 (@detly)
  • fd is now available on Alpine Linux, see #451 (@5paceToast)
  • fd is now in the officla FreeBSD repositories, see #412 (@t6)
  • Added OpenBSD install instructions, see #421 (@evitalis)
  • Added metadata to the Debian package, see #416 (@cathalgarvey)
  • fd can be installed via npm, see #438 (@pablopunk)

v7.3.0

13 Feb 20:08
Compare
Choose a tag to compare

Features

  • New --exec-batch <cmd>/-X <cmd> option for batch execution of commands, see #360 (@kimsnj).
    This allows you to do things like:
    fd … -X vim  # open all search results in vim (or any other editor)
    fd … -X ls -l  # view detailed stats about the search results with 'ls'
    fd -e svg -X inkscape  # open all SVG files in Inkscape
  • Support for 24-bit color codes (when specified via LS_COLORS) as well as
    different font styles (bold, italic, underline).

Changes

  • A few performance improvements, in particular when printing lots of colorized
    results to the console, see #370
  • The LS_COLORS handling has been "outsourced" to a separate crate (https://github.com/sharkdp/lscolors) that is now being used by other tools as well: fselect, lsd. For details, see #363.

Other

  • fd will be available in Ubuntu Disco DIngo (19.04), see #373 (@sylvestre)
  • This release should come with a static ARM binary (arm-unknown-linux-musleabihf), see #320 (@duncanfinney)
  • Various documentation improvements, see #389

Thanks

Special thanks to @alexmaco for his awesome work on refactoring and code improvements! (see #401, #398, and #383)

v7.2.0

27 Oct 16:44
Compare
Choose a tag to compare

Features

  • Added support for filtering by file modification time by adding two new options --changed-before <date|duration> and --changed-within <..>. For more details, see the --help text, the man page, the relevant issue #165 and the PR #339 (@kimsnj)
  • Added --show-errors option to enable the display of filesystem error messages such as "permission denied", see #311 (@psinghal20 and @majecty)
  • Added --maxdepth as a (hidden) alias for --max-depth, see #323 (@mqudsi)
  • Added --search-path option which can be supplied to replace the positional path argument at any position.

Changes

  • Loosen strict handling of missing --ignore-file, see #280 (@psinghal20)
  • Re-enabled .ignore files, see #156.

Bugfixes

  • fd could previously get stuck when run from the root directory in the
    presence of zombie processes. This curious bug has been fixed in Rust 1.29 and higher. For more details, see #288, rust-lang/rust#50619 and the fix

Other

  • fd has officially landed in Debian! See #345 for details. Thanks goes to @sylvestre, @paride and possibly others I don't know about.
  • Added Chinese translation of README (@chinanf-boy)

Thanks

A special thanks goes to @joshleeb for his amazing improvements throughout
the code base (new tests, refactoring work and various other things)!

v7.1.0

19 Aug 17:38
Compare
Choose a tag to compare

Features

Changes

  • With the new version, .gitignore files will only be respected in Git repositories, not outside.
  • A few performance improvements for --type searches, see 641976c and 50a2bab

Other

  • Starting with this release, we will offer pre-built ARM binaries, see #244
  • Added instructions on how to use fd with emacs, see #282 (@redguardtoo)
  • fd is now in the official openSUSE repositories, see #275 (@avindra)
  • fd is now available via MacPorts, see #291 (@raimue)

v7.0.0

26 Mar 09:39
Compare
Choose a tag to compare

Features

  • Added --type executable (or -t x) to search for executable files only, see #246 (@PramodBisht)
  • Added support for .fdignore files, see #156 and #241.
  • Added --ignore-file option to add custom ignore files, see #156.
  • Suggest --fixed-strings on invalid regular expressions, see #234 (@PramodBisht)
  • Detect when user supplied path instead of pattern, see #235.

Changes

  • .ignore and .rgignore files are not parsed anymore. Use .fdignore files
    or add custom files via --ignore-file instead.
  • Updated to regex-syntax 0.5 (@cuviper)

Bugfixes

  • Properly normalize absolute paths, see #268
  • Invalid utf8 filenames displayed when -e is used, see #250
  • If --type is used, fifos/sockets/etc. are always shown, see #260

Other

  • Packaging:
    • The Arch Linux package is now simply called fd.
    • There is now a fd ebuild for Gentoo Linux.
    • There is a scoop package for fd (Windows).
    • There is a Chocolatey package for fd (Windows).
    • There is a Fedora copr package for fd.

v6.3.0

10 Feb 16:24
Compare
Choose a tag to compare

Features

  • Files with multiple extensions can now be found via --extension/-e, see #214 (@althonos)

    > fd -e tar.gz
  • Added new -F/--fixed-strings/--literal option that treats the pattern as a literal string instead of a regular expression, see #157

    > fd -F 'file(1).txt'
  • Allow -exec to work as --exec, see #226 (@stevepentland)

Bugfixes

  • Fixed Ctrl-C handling when using --exec, see #224 (@Doxterpepper)

  • Fixed wrong file owner for files in deb package, see #213

Other

v6.2.0

03 Jan 10:44
Compare
Choose a tag to compare

Features

  • Support for filtering by multiple file extensions and multiple file types, see #199 and #177
    (@tkadur).

    For example, it's possible to search for C++ source or header files:

    > fd -e cpp -e c -e cxx -e h pattern

Changes

  • The size of the output buffer (for sorting search results) is now limited to 1000 entries. This
    improves the search speed significantly if there are a lot of results, see #191 (@sharkdp).

Bugfixes

  • Fix a bug where long-running searches could not be killed via Ctrl-C, see #210 (@Doxterpepper)
  • fd's exit codes are now in accordance with Unix standards, see #201 (@Doxterpepper)

Other

  • Bash, zsh and fish completion should now work with the Ubuntu .deb packages, see #195 and #209
    (@tmccombs and @sharkdp)
  • There is a new section on how to set up fzf to use fd in the
    README, see #168.

v6.1.0

10 Dec 07:13
Compare
Choose a tag to compare

Features

  • Support for multiple search paths, see #166 (@Doxterpepper)
  • Added --no-ignore-vcs option to disable .gitignore and other VCS ignore files,
    without disabling .ignore files - see #156 (@ptzz).

Bugfixes

Other

  • Debian packages are now created via Travis CI and should be available for this and all
    future releases (@tmccombs).
  • fd is now available on Void Linux (@maxice8)
  • The minimum required Rust version is now 1.20

Thanks

@Doxterpepper deserves a special mention for his great work that is included in this release and
for the support in ticket discussions and concerning Travis CI fixes. Thank you very much!

Thanks also go out to @tmccombs for the work on Debian packages and for reviewing a lot of pull requests!