fd

Developer Tools

A simple, fast and user-friendly alternative to find.

Latest v10.4.2 · by David PeterWebsitesharkdp/fd

Release activity

Release activity — 4 releases across 4 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026
TuesdayNo releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026
WednesdayNo releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 30, 2026No releases on May 7, 2026No releases on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on May 2, 2026No releases on May 9, 2026No releases on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

4 releases in the last year

Changelog

v10.4.2

Fixed 1
  • Fixed performance regression due to --ignore-contain
Bugfixes
  • Fixed performance regression due to --ignore-contain; see #1913 and #1914
View originalPermalink
How v10.4.2 went

v10.4.1

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

View originalPermalink
How v10.4.1 went

v10.4.0

Added 1
  • Add `--ignore-contain` option to ignore directories containing a named entry
Changed 2
  • Minimum required rust version has been increased to 1.90.0
  • Statically link the CRT for MSVC builds via Cargo config to avoid runtime DLL dependencies
Fixed 3
  • Fix Windows hyperlink generation for paths with spaces
  • `--print0` combined with `--exec` will now print a `\0` between the output of each entry
  • Fix bugs in the `ignore` library used for handling ignore rules
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

    • #1506
    • #1667
    • #1813
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)
View originalPermalink
How v10.4.0 went

v10.3.0

Added 1
  • Add a hidden --mindepth alias for --min-depth
Changed 5
  • Replace humantime crate and chrono crate with jiff crate
  • 'M' no longer means "month" in date parsing; use "mo", "mos", "month" or "months" instead
  • Month and year in date parsing now account for variability in the calendar rather than being hard-coded number of seconds
  • Add aarch64 Windows to CI and release artifacts
  • Improve support building on Illumos
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.

View originalPermalink
How v10.3.0 went

v10.2.0

Added 1
  • Add --hyperlink option to add OSC 8 hyperlinks to output
Changed 2
  • 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
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: https://github.com/sharkdp/fd/compare/v10.1.0...v10.2.0

View originalPermalink
How v10.2.0 went

v10.1.0

Added 2
  • 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 output similar to the template used for --exec
Changed 1
  • aarch64-apple-darwin target added to builds on the release page
Fixed 1
  • Fix aarch64 page size
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
  • Fix aarch64 page size again. This time it should actually work. (#1085, #1549) (@tavianator)
Other
  • aarch64-apple-darwin target added to builds on the release page. Note that this is a tier 2 rust target.
View originalPermalink
How v10.1.0 went

v10.0.0

Added 2
  • Add `dir` as an alias to `directory` when using `-t` or `--type`
  • Add support for @%s date format in time filters to specify seconds since Unix epoch for --older/--newer
Changed 2
  • No longer automatically ignore `.git` when using `--hidden` with vcs ignore enabled
  • Minimum supported rust version is now 1.77.2
Fixed 3
  • Respect NO_COLOR environment variable with `--list-details` option
  • Fix bug that would cause hidden files to be included despite gitignore rules if search path is "."
  • aarch64 builds now use 64k page sizes with jemalloc to fix issues on systems with larger page sizes
Security 1
  • Address CVE-2024-24576 by increasing minimum rust version
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
View originalPermalink
How v10.0.0 went

v9.0.0

Added 1
  • Support character and block device file types
Changed 4
  • Significantly improved performance through optimizations in the ignore crate and fd itself, with benchmark results showing gains of 6-8x for smaller directories and up to 13x for larger directories
  • Constrain default number of threads to at most 64 to improve startup time on systems with many CPU cores
  • Implement new flushing behavior when writing output to stdout for better performance in TTY and non-TTY use cases
  • .git/ is now ignored by default when using --hidden or -H, use --no-ignore or --no-ignore-vcs to override
Fixed 1
  • Fix NO_COLOR support
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
  • 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.

View originalPermalink
How v9.0.0 went
v8.7.1

8.7.1

Changed 1
  • `--changed-within` now accepts a space as well as a "T" as the separator between date and time
Fixed 3
  • Option `-1` now properly conflicts with the exec family of options
  • `--max-results` overrides `-1`
  • `--quiet` now properly conflicts with the exec family of options
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
View originalPermalink
How v8.7.1 went

v8.7.0

Added 1
  • Add flag --no-require-git to always respect gitignore files
Fixed 1
  • Fix logic for when to use global ignore file where it was not processed in certain conditions without --no-ignore, --unrestricted, or --no-global-ignore-file flags
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
View originalPermalink
How v8.7.0 went
View all

Discussion