--path-separatorto commands run with
--list-details, see #697 (@aswild)
No functional changes with respect to v8.2.0. Bugfix in the release process.
--pruneflag, see #535 (@reima)
--sizefilter, see #669 and #696 (@Rogach)
fdnow prints an error message if the search pattern requires a leading dot but
--hiddenis not enabled (Unix only), see #615
--helptext will be colorless if
NO_COLORhas been set, see #600 (@xanonid)
LS_COLORSis not set (e.g. on Windows), we now provide a more comprehensive default which includes much more filetypes, see #604 and #682 (mjsir911).
--color=alwaysis set or (2) the
TERMenvironment variable is set. See #469
--owner [user][:group]filter. See #307 (pull #581) (@alexmaco)
~/.config/fd/ignoreon Unix), see #575 (@soedirgo)
--globbehavior with empty pattern, see #579 (@SeamusConnor)
--list-detailson FreeBSD, DragonFly BSD, OpenBSD and NetBSD. See #573 (@t6)
--size, see #584
--list-detailsoption to show more details about the search results. This is basically an alias for
--exec-batch ls -lwith some additional
lsoptions. This can be used in order to:
--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
fdcan only exit when it finds the search results
<count> + 1.
--max-results=1, see #561. (@SimplyDanny).
--type pipefilters, see #511.
--exact-depth <depth>options in addition to the existing option to limit the maximum depth. See #404.
LS_COLORS: faint, slow blink, rapid blink, dimmed, hidden and strikethrough.
fd's output, we replace non-UTF-8 sequences with the "�" character. However, if the output of
fdgoes to another process, we print the actual bytes of the filename. For more details, see #558 and #295.
LS_COLORSentries with unsupported font styles are not completely ignored, see #552
fd="fd --color=never"to continue using
fdwithout colors. There is no change of behavior for Windows 10. See #469.
--globin combination with
*character does not match a path separation character (
\\) 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.
fd -exec(with a single dash) has been removed. Use
--xdev) to not cross file system boundaries on Unix and Windows, see #507 (@FallenWarrior2k).
--base-directoryto change the working directory in which
fdis run, see #509 and #475 (@hajdamak).
fdwill not use colored output if the
NO_COLORenvironment variable is set, see #550 and #551 (@metadave).
fd --execwill return exit code 1 if one of the executed commands fails, see #526 and #531 (@fusillicode and @Giuffre)
fd -Lshould include broken symlinks, see #357 and #497 (@tommilligan, @neersighted and @sharkdp)
-Xoption to match the behaviour of piping to
xargs, see #441 and #524 (@Marcoleni @crash-g).
statsyscalls, improving the performance for searches where file metadata is required (
--changed-within, …), see #434 (@tavianator)
*musl*builds do not profit from this.
--globoption to switch to glob-based searches (instead of regular expression based searches). This is accompanied by a new
--regexoption that can be used to switch back, if users want to
alias fd="fd --glob". See #284
--path-separator <sep>option which can be useful for Windows users who want/need
\, see #428 and #153 (@mookid)
fdis run with the
-Xoption, it now exposes the exit status of the command that was run, see #333.
--changed-beforework for directories, see #470
fdbinaries should now be available for
armhftargets, see #457 (@detly)
fdis now available on Alpine Linux, see #451 (@5paceToast)
fdis now in the officla FreeBSD repositories, see #412 (@t6)
fdcan be installed via npm, see #438 (@pablopunk)
-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
LS_COLORS) as well as different font styles (bold, italic, underline).
LS_COLORShandling 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.
fdwill be available in Ubuntu Disco DIngo (19.04), see #373 (@sylvestre)
arm-unknown-linux-musleabihf), see #320 (@duncanfinney)
--changed-within <..>. For more details, see the
--helptext, the man page, the relevant issue #165 and the PR #339 (@kimsnj)
--show-errorsoption to enable the display of filesystem error messages such as "permission denied", see #311 (@psinghal20 and @majecty)
--maxdepthas a (hidden) alias for
--max-depth, see #323 (@mqudsi)
--search-pathoption which can be supplied to replace the positional
pathargument at any position.
--ignore-file, see #280 (@psinghal20)
.ignorefiles, see #156.
fdcould 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
fdhas officially landed in Debian! See #345 for details. Thanks goes to @sylvestre, @paride and possibly others I don't know about.
A special thanks goes to @joshleeb for his amazing improvements throughout the code base (new tests, refactoring work and various other things)!
--sizefilter option, see #276 (@stevepentland, @JonathanxD and @alexmaco)
-t e) to search for empty files and/or directories, see #273
.gitignorefiles will only be respected in Git repositories, not outside.
emacs, see #282 (@redguardtoo)
fdis now in the official openSUSE repositories, see #275 (@avindra)
fdis now available via MacPorts, see #291 (@raimue)
-t x) to search for executable files only, see #246 (@PramodBisht)
.fdignorefiles, see #156 and #241.
--ignore-fileoption to add custom ignore files, see #156.
--fixed-stringson invalid regular expressions, see #234 (@PramodBisht)
.rgignorefiles are not parsed anymore. Use
.fdignorefiles or add custom files via
-eis used, see #250
--typeis used, fifos/sockets/etc. are always shown, see #260
fdebuild for Gentoo Linux.
> fd -e tar.gz
--literal option that treats the pattern as a literal string instead of a regular expression, see #157
> fd -F 'file(1).txt'
Fixed wrong file owner for files in deb package, see #213
For example, it's possible to search for C++ source or header files:
> fd -e cpp -e c -e cxx -e h pattern
.debpackages, see #195 and #209 (@tmccombs and @sharkdp)
fdin the README, see #168.
--no-ignore-vcsoption to disable
.gitignoreand other VCS ignore files, without disabling
.ignorefiles - see #156 (@ptzz).
--execwhen user input was required, see #178 and #193 (@reima)
@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!
-xoption does not spawn an intermediate shell anymore. This improves the performance of parallel command execution and fixes a whole class of (present and potentially future) problems with shell escaping. The drawback is that shell commands cannot directly be called with
--exec. See #155 for the full discussion. These changes have been implemented by @reima (Thanks!).
--execdoes not escape cmd.exe metacharacters on Windows (see #155, as above).
rustcversion is now checked when building with
cargo, see #164 (@matematikaadit)
-xoption for parallel command execution (@mmstick, see #84 and #116). See the corresponding README section for an introduction.
cmd.exe(@iology, see #129)
-Xoption to suppress certain files/directories in the search results (see #89).
--no-ignore --hidden, respectively (@unsignedint, see #92)
--ignore-case(@iology, see #95)
.can now match newlines in file names (@iology, see #111)
--typeargument for symlinks has been changed from
l(@jcpetkovich, see #83)
--typebehavior for unknown file types (@iology, see #150)
--exec(@iology, see #142)
rustfmton Travis (@Detegr, see #99)
A lot of things have happened since the last release and I'd like to thank all contributors for their great support. I'd also like to thank those that have contributed by reporting bugs and by posting feature requests.
I'd also like to take this chance to say a special Thank You to a few people that have stood out in one way or another: To @iology, for contributing a multitude of bugfixes, improvements and new features. To @reima and @Detegr for their continuing great support. To @mmstick, for implementing the most advanced new feature of fd. And to @matematikaadit for the CI/tooling upgrades.
fd -e txt, see #56 (@reima)
--color always, see #49 (@Detegr)
--helptext (@abaez and @Detegr)
cargo test- see #65 (many thanks to @reima!)
statsyscalls for each result from 3 to 1, see #36.
find --type directoryor
find -t f(@exitium)
--versionby switching from
fdvia homebrew on macOS:
brew install fd.
tail, ..), see #24
LS_COLORSenvironment variable directly, instead of