Releases: sharkdp/fd
v9.0.0
Performance
-
This release is all about performance, which has been significantly improved, both due to optimizations in the underlying
ignore
crate (#1429 by @tavianator), and infd
itself (#1422, #1408, #1362 by @tavianator). Benchmark results show gains of 6-8x for full traversals of smaller directories (100k files) and up to 13x for larger directories (1M files). -
The default number of threads is now constrained to be at most 64. This should improve startup time on systems with many CPU cores. (#1203, #1410, #1412, #1431) - @tmccombs and @tavianator
-
New flushing behavior when writing output to stdout, providing better performance for TTY and non-TTY use cases, see #1452 and #1313 (@tavianator).
Features
- Support character and block device file types, see #1213 and #1336 (@cgzones)
- Breaking:
.git/
is now ignored by default when using--hidden
/-H
, use--no-ignore
/-I
or--no-ignore-vcs
to override, see #1387 and #1396 (@skoriop)
Bugfixes
- Fix
NO_COLOR
support, see #1421 (@acuteenvy)
Other
- Fixed documentation typos, see #1409 (@marcospb19)
Thanks
Special thanks to @tavianator for his incredible work on performance in the ignore
crate and fd
itself.
8.7.1
Bugfixes
-1
properly conflicts with the exec family of options.--max-results
overrides-1
--quiet
properly conflicts with the exec family of options. This used to be the case, but broke during the switch to clap-derive--changed-within
now accepts a space as well as a "T" as the separator between date and time (due to update of chrono dependency)
Other
- Many dependencies were updated
- Some documentation was updated and fixed
v8.7.0
Features
Bugfixes
- Fix logic for when to use global ignore file. There was a bug where the only case where the
global ignore file wasn't processed was if--no-ignore
was passed, but neither--unrestricted
nor--no-global-ignore-file
is passed. See #1209
v8.6.0
Features
- New
--and <pattern>
option to add additional patterns that must also be matched. See #315
and #1139 (@Uthar) - Added
--changed-after
as alias for--changed-within
, to have a name consistent with--changed-before
.
Changes
- Breaking: On Unix-like systems,
--type executable
now additionally checks if
the file is executable by the current user, see #1106 and #1169 (@Ptipiak)
Bugfixes
- Use fd instead of fd.exe for Powershell completions (when completions are generated on windows)
v8.5.3
v8.5.2
v8.5.1
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)