A simple, fast and user-friendly alternative to 'find'
stat
syscalls, improving the performance for searches where file metadata is
required (--type
, --size
, --changed-within
, …), see #434 (@tavianator)*musl*
builds do not profit from this.-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--path-separator <sep>
option which can be useful for Windows users who
want/need fd
to use /
instead of \
, see #428 and #153 (@mookid)fd
is run with the --exec-batch
/-X
option, it now exposes the exit status of the
command that was run, see #333.--changed-within
/--changed-before
work for directories, see #470fd
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)fd
can be installed via npm, see #438 (@pablopunk)--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
LS_COLORS
) as well as
different font styles (bold, italic, underline).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.fd
will be available in Ubuntu Disco DIngo (19.04), see #373 (@sylvestre)arm-unknown-linux-musleabihf
), see #320 (@duncanfinney)Special thanks to @alexmaco for his awesome work on refactoring and code improvements! (see #401, #398, and #383)
--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)--show-errors
option to enable the display of filesystem error messages such as "permission denied", see #311 (@psinghal20 and @majecty)--maxdepth
as a (hidden) alias for --max-depth
, see #323 (@mqudsi)--search-path
option which can be supplied to replace the positional path
argument at any position.--ignore-file
, see #280 (@psinghal20).ignore
files, see #156.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
fd
has 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)!
--size
filter option, see #276 (@stevepentland, @JonathanxD and @alexmaco)--type empty
(or -t e
) to search for empty files and/or directories, see #273.gitignore
files will only be respected in Git repositories, not outside.--type
searches, see 641976cf7ad311ba741571ca8b7f02b2654b6955 and 50a2bab5cd52d26d4a3bc786885a2c270ed3b227fd
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)--type executable
(or -t x
) to search for executable files only, see #246 (@PramodBisht).fdignore
files, see #156 and #241.--ignore-file
option to add custom ignore files, see #156.--fixed-strings
on invalid regular expressions, see #234 (@PramodBisht).ignore
and .rgignore
files are not parsed anymore. Use .fdignore
files
or add custom files via --ignore-file
instead.regex-syntax
0.5 (@cuviper)-e
is used, see #250--type
is used, fifos/sockets/etc. are always shown, see #260fd
.fd
ebuild for Gentoo Linux.scoop
package for fd
(Windows).Chocolatey
package for fd
(Windows).copr
package for fd
.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)
Fixed Ctrl-C
handling when using --exec
, see #224 (@Doxterpepper)
Fixed wrong file owner for files in deb package, see #213
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
.deb
packages, see #195 and #209
(@tmccombs and @sharkdp)fzf
to use fd
in the
README, see #168.--no-ignore-vcs
option to disable .gitignore
and other VCS ignore files,
without disabling .ignore
files - see #156 (@ptzz).--exec
when 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!
--exec
/-x
option 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!).--exec
does not escape cmd.exe metacharacters on Windows (see #155, as above).rustc
version is now checked when building with cargo
, see #164 (@matematikaadit)--exec
, -x
option for parallel command execution (@mmstick, see #84 and #116). See the corresponding README section for an introduction.cmd.exe
(@iology, see #129)--exclude
, -X
option to suppress certain files/directories in the search results
(see #89).-u
and -uu
for --no-ignore
and --no-ignore --hidden
, respectively
(@unsignedint, see #92)-i
, --ignore-case
(@iology, see #95).
can now match newlines in file names (@iology, see #111)--type
argument for symlinks has been changed from s
to l
(@jcpetkovich, see #83)--type
behavior for unknown file types (@iology, see #150)--exec
(@iology, see #142)rustfmt
on Travis (@Detegr, see #99)CONTRIBUTING
guidelinesREADME
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.