explaingit

sharkdp/fd

Analysis updated 2026-06-20

42,859RustAudience · developerComplexity · 1/5Setup · easy

TLDR

fd is a fast, user-friendly command-line file finder that replaces Unix 'find', simpler syntax, respects .gitignore by default, and searches in parallel threads for speed.

Mindmap

mindmap
  root((fd))
    What it does
      Fast file search
      Regex and glob patterns
      Gitignore-aware
      Parallel traversal
    Tech Stack
      Rust
      Cross-platform
    Use Cases
      Codebase navigation
      fzf integration
      Exec on results
      Large tree search
    Audience
      Developers
      Terminal power users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Find all files matching a pattern in a codebase while automatically skipping node_modules and .gitignore'd paths.

USE CASE 2

Locate recently modified files of a specific type quickly across a large directory tree.

USE CASE 3

Use fd as a file-finder backend for fzf to enable interactive fuzzy file search in your terminal.

USE CASE 4

Execute a command on every matched file using fd's built-in exec flag inside shell pipelines.

What is it built with?

Rust

How does it compare?

sharkdp/fdrtk-ai/rtkjuspay/hyperswitch
Stars42,85942,92542,588
LanguageRustRustRust
Setup difficultyeasymoderatehard
Complexity1/53/54/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
The explanation does not specify the license terms.

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
Using fd, find all .ts files modified in the last 2 days in my project while excluding the dist and node_modules folders.
Prompt 2
How do I pipe fd output into fzf to create an interactive fuzzy file opener in the terminal?
Prompt 3
Show me how to use fd's --exec flag to run a shell command on every Markdown file found in a directory tree.
Prompt 4
How is 'fd pattern' different from 'find . -name pattern', why does fd ignore hidden files and .gitignore entries by default?
Prompt 5
How do I install fd on macOS with Homebrew and on Ubuntu with apt or cargo?

Frequently asked questions

What is fd?

fd is a fast, user-friendly command-line file finder that replaces Unix 'find', simpler syntax, respects .gitignore by default, and searches in parallel threads for speed.

What language is fd written in?

Mainly Rust. The stack also includes Rust.

What license does fd use?

The explanation does not specify the license terms.

How hard is fd to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is fd for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub sharkdp on gitmyhub

Verify against the repo before relying on details.