Skip to content

Releases: sharkdp/fd

10.5.0

Choose a tag to compare

@tmccombs tmccombs released this 26 Aug 07:59
4f81778

Features

  • Add --ignore-parent option to override --no-ignore-parent, see #1958 (@tmchow)
  • Add --exact option to match the entire filename exactly (literal, non-substring).

Bugfixes

  • Sanitize control characters and bidirectional override characters in filenames
    when output goes to a terminal, to prevent terminal escape-sequence injection.
    Also reject a placeholder as the executable for --exec-batch, while still
    allowing it for --exec.
  • Handle invalid working directories gracefully when using --full-path, see #1900 (@Xavrir).
  • Fire the "search pattern contains a path separator" diagnostic for any pattern containing /, not just patterns that happen to name an existing directory. Preserves the legacy Windows behaviour that also flags native \ separators when the pattern resolves to a real directory. See #1873.
  • Also fire the "search pattern contains a path separator" diagnostic for --and patterns, not only the primary positional pattern. --and patterns are matched against the file name just like the primary pattern, so a path separator in them silently returned zero results. See #1873.
  • Fix bug where passing "-" as a directory argument didn't actually search that directory, see #849 (@Sean-Kenneth-Doherty).
  • Fix panic when --changed-before/--changed-within is given an out-of-range @ Unix timestamp; the value is now rejected gracefully, see #2081 (@nikolauspschuetz).

New Contributors

Full Changelog: v10.4.2...v10.5.0

v10.4.2

Choose a tag to compare

@tmccombs tmccombs released this 10 Mar 07:33
7027d45

Bugfixes

  • Fixed performance regression due to --ignore-contain; see #1913 and #1914

v10.4.1

Choose a tag to compare

@tmccombs tmccombs released this 08 Mar 08:41
4ea110d

This is just a re-release of 10.4.0 due to an issue with the 10.4.0 release.

v10.4.0

Choose a tag to compare

@tmccombs tmccombs released this 07 Mar 07:04
ff1f66c

Features

  • Add --ignore-contain option to ignore directories containing a named entry (e.g. to ignore CACHEDIR.TAG); see #1727 (@fischman).

Bugfixes

  • Fix Windows hyperlink generation for paths with spaces. (#1872)

  • --print0 combined with --exec will now print a \0 between the output of each entry. Note that if there are multiple instances
    of --exec, the \0 will be between each set of commands, not between each individual command run. Fixes #1797.

  • Several bugs were fixed by an update to the ignore library used for handling ignore rules

Changes

  • Minimum required rust version has been increased to 1.90.0. Notably, this means dropping fully support for intel Mac and Windows 7.
  • Statically link the CRT for MSVC builds via Cargo config to avoid runtime DLL dependencies, see #1874 (@FidelSch)

v10.3.0

Choose a tag to compare

@tmccombs tmccombs released this 26 Aug 08:18
d38148f

Features

  • Add a hidden --mindepth alias for --min-depth. (#1617)

Bugfixes

Changes

  • Replace humantime crate and chrono crate with jiff crate, see #1690 (@sorairolake). This has some small changes to the
    way dates given to options such --changed-within and --changed-before including:
    • 'M' no longer means "month", as that could be confusing with minutes. Use "mo", "mos", "month" or "months" instead.
    • month and year now account for variability in the calander rather than being a hard-coded number of seconds. That is probably
      what you would expect, but it is a slight change in behavior.
  • aarch64 Windows was added to CI and release artifacts
  • Many dependencies were updated
  • Better support building on Illumos (there is no automated testing, but some known issues were fixed)

Other

This will be the last release that has been tested on x86_64 Mac OS, since GitHub is
dropping support for runners with that hardware.

It may also be the last release to use a version of Rust with tier-1 support for
x86_64/intel Macs and Windows 7.

v10.2.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 06:36
b191368

Features

  • Add --hyperlink option to add OSC 8 hyperlinks to output

Changes

  • Build windows releases with rust 1.77 so windows 7 is still supported
  • Deb packages now include symlink for fdfind to be more consistent with official packages

New Contributors

Full Changelog: v10.1.0...v10.2.0

v10.1.0

Choose a tag to compare

@tmccombs tmccombs released this 08 May 06:41
289a68b

Features

  • Allow passing an optional argument to --strip-cwd-prefix of "always", "never", or "auto". to force whether the cwd prefix is stripped or not.
  • Add a --format option which allows using a format template for direct ouput similar to the template used for --exec. (#1043)

Bugfixes

Other

  • aarch64-apple-darwin target added to builds on the release page. Note that this is a tier 2 rust target.

v10.0.0

Choose a tag to compare

@tmccombs tmccombs released this 06 May 06:05
8acd772

Features

  • Add dir as an alias to directory when using -t \ --type, see #1460 and #1464 (@Ato2207).
  • Add support for @%s date format in time filters similar to GNU date (seconds since Unix epoch for --older/--newer), see #1493 (@nabellows)
  • Breaking: No longer automatically ignore .git when using --hidden with vcs ignore enabled. This reverts the change in v9.0.0. While this feature
    was often useful, it also broke some existing workflows, and there wasn't a good way to opt out of it. And there isn't really a good way for us to add
    a way to opt out of it. And you can easily get similar behavior by adding .git/ to your global fdignore file.
    See #1457.

Bugfixes

  • Respect NO_COLOR environment variable with --list-details option. (#1455)
  • Fix bug that would cause hidden files to be included despite gitignore rules
    if search path is "." (#1461, BurntSushi/ripgrep#2711).
  • aarch64 builds now use 64k page sizes with jemalloc. This fixes issues on some systems, such as ARM Macs that
    have a larger system page size than the system that the binary was built on. (#1547)
  • Address CVE-2024-24576, by increasing minimum rust version.

Changes

  • Minimum supported rust version is now 1.77.2

v9.0.0

Choose a tag to compare

@sharkdp sharkdp released this 19 Dec 10:31

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

Choose a tag to compare

@tmccombs tmccombs released this 21 Oct 04:29
6b5fe1c

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