Releases: sharkdp/fd
Releases · sharkdp/fd
v8.5.0
Features
--type executable
/-t
now works on Windows, see #1051 and #1061 (@tavianator)
Bugfixes
- Fixed differences between piped / non-piped output. This changes
fd
s behavior back to what we
had before 8.3.0, i.e. there will be no leading./
prefixes, unless--exec
/-x
,
--exec-batch
/-X
, or--print0
/-0
are used.--strip-cwd-prefix
can be used to strip that
prefix in those cases. See #1046, #1115, and #1121 (@tavianator) fd
could previously crash with a panic due to a race condition in Rusts standard library
(see rust-lang/rust#39364). This has been fixed by switching to a different
message passing implementation, see #1060 and #1146 (@tavianator)fd
s memory usage will not grow unboundedly on huge directory trees, see #1146 (@tavianator)- fd returns an error when current working directory does not exist while a search path is
specified, see #1072 (@vijfhoek) - Improved "command not found" error message, see #1083 and #1109 (@themkat)
- Preserve command exit codes when using
--exec-batch
, see #1136 and #1137 (@amesgen)
Changes
- No leading
./
prefix for non-interactive results, see above. - fd now colorizes paths in parallel, significantly improving performance, see #1148 (@tavianator)
- fd can now avoid
stat
syscalls even when colorizing paths, as long as the color scheme doesn't
require metadata, see #1148 (@tavianator) - The statically linked
musl
versions offd
now usejmalloc
, leading to a significant performance
improvement, see #1062 (@tavianator)
Other
- Added link back to GitHub in man page and
--help
text, see #1086 (@scottchiefbaker) - Major update in how
fd
handles command line options internally, see #1067 (@tmccombs)
v8.4.0
Features
Bugfixes
- "Argument list too long" errors can not appear anymore when using
--exec-batch
/-X
, as the command invocations are automatically batched at the maximum possible size, even if--batch-size
is not given. See #410 and #1020 (@tavianator)
Changes
- Directories are now printed with an additional path separator at the end:
foo/bar/
, see #436 and #812 (@yyogo) - The
-u
flag was changed to be equivalent to-HI
(previously, a single-u
was only equivalent to-I
). Additional-u
flags are still allowed, but ignored. See #840 and #986 (@jacksontheel)
Other
v8.3.2
v8.3.1
Bugfixes
- Stop implying
--no-ignore-parent
when--no-vcs-ignore
is supplied, see #907, #901, #908 (@tmccombs) - fd no longer waits for the whole traversal if the only matches arrive within max_buffer_time, see #868 and #895 (@tavianator)
--max-results=1
now immediately quits after the first result, see #867 (@tavianator)fd -h
does not panic anymore when stdout is closed, see #897
Changes
v8.3.0
Performance improvements
- Colorized output is now significantly faster, see #720 and #853 (@tavianator)
- Writing to stdout is now buffered if the output does not go to a TTY. This increases performance
when the output offd
is piped to another program or to a file, see #885 (@tmccombs, original
implementation by @sourlemon207) - File metadata is now cached between the different filters that require it (e.g.
--owner
,
--size
), reducing the number ofstat
syscalls when multiple filters are used; see #863
(@tavianator, original implementation by @alexmaco)
Features
- Don't buffer command output from
--exec
when using a single thread. See #522 - Add new
-q, --quiet
flag, see #303 (@Asha20) - Add new
--no-ignore-parent
flag, see #787 (@will459) - Add new
--batch-size
flag, see #410 (@devonhollowood) - Add opposing command-line options, see #595 (@Asha20)
- Add support for more filesystem indicators in
LS_COLORS
, see
sharkdp/lscolors#35 (@tavianator)
Bugfixes
- Always show the
./
prefix for search results unless the output is a TTY or--strip-cwd-prefix
is set, see #760 and #861 (@jcaplan) - Set default path separator to
/
in MSYS, see #537 and #730 (@aswild) - fd cannot search files under a RAM disk, see #752
- fd doesn't show substituted drive on Windows, see #365
- Properly handle write errors to devices that are full, see #737
- Use local time zone for time functions (
--change-newer-than
,--change-older-than
), see #631 (@jacobmischka) - Support
--list-details
on more platforms (like BusyBox), see #783 - The filters
--owner
,--size
, and--changed-{within,before}
now apply to symbolic links
themselves, rather than the link target, except when--follow
is specified; see #863 - Change time comparisons to be exclusive, see #794 (@jacobmischka)
Changes
- Apply custom
--path-separator
to commands run with--exec(-batch)
and--list-details
, see #697 (@aswild)
Other
- Many documentation updates
v8.2.1
v8.2.0
Features
- Add new
--prune
flag, see #535 (@reima) - Improved the usability of the time-based options, see #624 and #645 (@gorogoroumaru)
- Add support for exact file sizes in the
--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
Bugfixes
- Avoid panic when performing limited searches in directories with restricted permissions, see #678
- Invalid numeric command-line arguments are silently ignored, see #675
- Disable jemalloc on Android, see #662
- The
--help
text will be colorless ifNO_COLOR
has been set, see #600 (@xanonid)
Changes
- If
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).
Other
v8.1.1
v8.1.0
Features
- Add new
--owner [user][:group]
command-line option See #307 (pull #581) (@alexmaco)
This can be used to filter results by ownership:Note that the new option is currently not available on Windows.# 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'
- Add support for a global ignore file (
~/.config/fd/ignore
on Unix), see #575 (@soedirgo) - Do not exit immediately if one of the search paths is missing, see #587 (@DJRHails)
Bugfixes
- Reverted a change from fd 8.0 that enabled colors on all Windows terminals (see below) in order to support older Windows versions again, see #577. Unfortunately, this re-opens #469
- Fix segfault caused by jemalloc on macOS Catalina, see #498
- Fix
--glob
behavior with empty pattern, see #579 (@SeamusConnor) - Fix
--list-details
on FreeBSD, DragonFly BSD, OpenBSD and NetBSD. See #573 (@t6)
Changes
- Updated documentation for
--size
, see #584
v8.0.0
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 additionalls
options.
This can be used in order to: - 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 tohead -n <count>
wherefd
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
. Infd
's output, we replace non-UTF-8
sequences with the "�" character. However, if the output offd
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 aliasfd="fd --color=never"
to
continue usingfd
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. Usefd -x
or
fd --exec
instead. - Overall improved error handling and error messages.