A simple, fast and user-friendly alternative to 'find'
--no-ignore-parent
when --no-vcs-ignore
is supplied, see #907, #901, #908 (@tmccombs)--max-results=1
now immediately quits after the first result, see #867 (@tavianator)fd -h
does not panic anymore when stdout is closed, see #897fd
is piped to another program or to a file, see #885 (@tmccombs, original
implementation by @sourlemon207)--owner
,
--size
), reducing the number of stat
syscalls when multiple filters are used; see #863
(@tavianator, original implementation by @alexmaco)--exec
when using a single thread. See #522-q, --quiet
flag, see #303 (@Asha20)--no-ignore-parent
flag, see #787 (@will459)--batch-size
flag, see #410 (@devonhollowood)LS_COLORS
, see
https://github.com/sharkdp/lscolors/pull/35 (@tavianator)./
prefix for search results unless the output is a TTY or --strip-cwd-prefix
is set, see #760 and #861 (@jcaplan)/
in MSYS, see #537 and #730 (@aswild)--change-newer-than
, --change-older-than
), see #631 (@jacobmischka)--list-details
on more platforms (like BusyBox), see #783--owner
, --size
, and --changed-{within,before}
now apply to symbolic links
themselves, rather than the link target, except when --follow
is specified; see #863--path-separator
to commands run with --exec(-batch)
and --list-details
, see #697 (@aswild)No functional changes with respect to v8.2.0. Bugfix in the release process.
--prune
flag, see #535 (@reima)--size
filter, see #669 and #696 (@Rogach)fd
now prints an error message if the search pattern requires a leading dot but
--hidden
is not enabled (Unix only), see #615--help
text will be colorless if NO_COLOR
has been set, see #600 (@xanonid)LS_COLORS
is not set (e.g. on Windows), we now provide a more comprehensive default which
includes much more filetypes, see #604 and #682 (mjsir911).zsh
completion files, see #654 and #189 (@smancill)--owner [user][:group]
command-line option See #307 (pull #581) (@alexmaco)
This can be used to filter results by ownership:
# files matching the 'exercise' pattern, owned by john
fd exercise --type file --owner john
# files/directories that are not owned by john
fd --owner '!john'
# … owned by the 'students' group
fd --owner ':students'
# … owned by the 'students' group, but not by john
fd --owner '!john:students'
Note that the new option is currently not available on Windows.~/.config/fd/ignore
on Unix), see #575 (@soedirgo)--glob
behavior with empty pattern, see #579 (@SeamusConnor)--list-details
on FreeBSD, DragonFly BSD, OpenBSD and NetBSD. See #573 (@t6)--size
, see #584-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:
--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
.-1
for --max-results=1
, see #561. (@SimplyDanny).--type socket
and --type pipe
filters, see #511.--min-depth <depth>
and --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.--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 #552fd="fd --color=never"
to
continue using fd
without colors. There is no change of behavior for
Windows 10. See #469.--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.fd -exec
(with a single dash) has been removed. Use fd -x
or
fd --exec
instead.ls
as an optional dependency for fd
to make full use of fd
s new -l
/--list-details
option. For MacOS, fd
relies on gls
which should be available via coreutils
.--one-file-system
(aliases: --mount
, --xdev
) to not cross file system boundaries on Unix and Windows, see #507 (@FallenWarrior2k).--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)fd -L
should include broken symlinks, see #357 and #497 (@tommilligan, @neersighted and @sharkdp)-X
option to match the behaviour of piping to xargs
, see #441 and #524 (@Marcoleni @crash-g).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)