Skip to content

Releases: sharkdp/fd

v9.0.0

19 Dec 10:31
Compare
Choose a tag to compare

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 in fd 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

Other

Thanks

Special thanks to @tavianator for his incredible work on performance in the ignore crate and fd itself.

8.7.1

21 Oct 04:29
6b5fe1c
Compare
Choose a tag to compare

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

24 Feb 08:25
Compare
Choose a tag to compare

Features

  • Add flag --no-require-git to always respect gitignore files, see #1216 (@vegerot)

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

09 Dec 07:02
Compare
Choose a tag to compare

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

21 Nov 19:43
8dda499
Compare
Choose a tag to compare

Bugfixes

  • Fix completion generation to not include full path of fd command
  • Fix build error if completions feature is disabled

v8.5.2

03 Nov 08:14
Compare
Choose a tag to compare

Bugfixes

v8.5.1

02 Nov 12:48
Compare
Choose a tag to compare

Bugfixes

v8.5.0

01 Nov 20:34
Compare
Choose a tag to compare

Features

Bugfixes

  • Fixed differences between piped / non-piped output. This changes fds 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)
  • fds 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 of fd now use jmalloc, leading to a significant performance
    improvement, see #1062 (@tavianator)

Other

v8.4.0

29 May 09:29
Compare
Choose a tag to compare

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

  • Added installation instructions for RHEL8, see #989 (@ethsol)

v8.3.2

29 Jan 15:57
Compare
Choose a tag to compare

Bufixes

  • Invalid absolute path on windows when searching from the drive root, see #931 and #936 (@gbarta)