explaingit

sharkdp/fd

📈 Trending43,032RustAudience · developerComplexity · 2/5ActiveLicenseSetup · easy

TLDR

A fast, user-friendly command-line tool for finding files and directories. It replaces the Unix find command with simpler syntax, parallel search, and smart defaults like ignoring .gitignore patterns.

Mindmap

mindmap
  root((fd))
    What it does
      Find files fast
      Regex and glob
      Color output
    Key features
      Parallel search
      Ignores gitignore
      Skip hidden files
      Execute commands
    Use cases
      Search codebases
      Find by pattern
      Backend for fzf
    Tech stack
      Rust
      Linux macOS Windows
      Package managers

Things people build with this

USE CASE 1

Find all files matching a pattern in a codebase while automatically skipping node_modules and build directories.

USE CASE 2

Quickly locate recently modified files of a specific type across a large directory tree.

USE CASE 3

Use as a backend file finder for fuzzy search tools like fzf to navigate projects faster.

USE CASE 4

Execute commands on matched files, such as batch renaming or processing files in a pipeline.

Tech stack

RustLinuxmacOSWindows

Getting it running

Difficulty · easy Time to first run · 5min
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

fd is a command-line tool for finding files and directories, designed as a fast and user-friendly alternative to the Unix find command. It keeps the most common use cases simple while being significantly faster in practice thanks to parallel directory traversal. The key differences from find are that fd uses regular expression or glob patterns by default instead of requiring the somewhat awkward find syntax, it ignores hidden files and directories as well as patterns listed in .gitignore files by default so searches stay focused on relevant files in a project, it displays results with color coding for different file types, and it runs the search in parallel across threads. For users who prefer simpler matching, it also supports glob-style patterns. It supports executing commands on matched results, making it useful as a building block in shell pipelines. You would use fd when searching through a codebase or file system and find that the default find command requires too many flags for common tasks, or when speed matters because you are searching a large directory tree. It is particularly popular among developers for quick navigation and as a file finder backend for tools like fzf. Common examples include finding all files matching a pattern while skipping node_modules and build output, or locating recently modified files of a specific type. fd is written in Rust, which gives it both speed and memory safety. It runs on Linux, macOS, and Windows and is installable through most package managers including Homebrew, apt, and cargo. The project is maintained by the same author as bat, the syntax-highlighting cat replacement.

Copy-paste prompts

Prompt 1
How do I use fd to find all Rust files in my project, excluding hidden directories and .gitignore patterns?
Prompt 2
Show me how to use fd with fzf to interactively search and open files in my codebase.
Prompt 3
How do I run a command on all files matching a pattern using fd, like renaming or deleting them?
Prompt 4
What are the main differences between fd and the Unix find command, and when should I use fd instead?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.