fd
A simple, fast and user-friendly alternative to 'find'
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.
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.
Where it fits
- Find all files matching a pattern in a codebase while automatically skipping node_modules and .gitignore'd paths.
- Locate recently modified files of a specific type quickly across a large directory tree.
- Use fd as a file-finder backend for fzf to enable interactive fuzzy file search in your terminal.
- Execute a command on every matched file using fd's built-in exec flag inside shell pipelines.