Esta página se muestra en inglés. Una traducción al español está en curso.
ConfigsApr 11, 2026·2 min de lectura

fd — A Simple Fast User-Friendly Alternative to find

fd is a simple, fast, and user-friendly alternative to the venerable find command. Written in Rust with smart defaults: color output, gitignore-aware, parallel traversal, and intuitive syntax. Used by VS Code, Helix, and many dev tools.

Introducción

fd is a simple, fast and user-friendly alternative to the traditional find command. Written in Rust by David Peter (also author of bat). Smart defaults: colorful output, gitignore support, regex matching by default, parallel directory traversal, and intuitive syntax that does not require remembering find flags.

What fd Does

  • Regex matching — default, --glob for glob patterns
  • Gitignore aware — respects .gitignore by default
  • Colored output — file type colors via LS_COLORS
  • Parallel traversal — multi-threaded walking
  • Exec commands-x or -X to run commands on matches
  • Smart case — case-insensitive when pattern is all lowercase
  • File type filter-t f file, -t d dir, -t l link
  • Time filters — changed-within, changed-before
  • Size filters--size +1M

Architecture

Single Rust binary using walkdir + ignore crates for traversal. Runs on multiple threads (one per CPU). Uses Rust regex engine for pattern matching.

Self-Hosting

CLI tool.

Key Features

  • ~5x faster than find on average
  • Smart defaults (gitignore, smart case, colors)
  • Simple intuitive syntax
  • Parallel traversal
  • Integration with xargs via -x / -X
  • Unicode aware
  • Size and time filters

Comparison

Tool Language Smart Defaults Syntax
fd Rust Yes Intuitive
find C None POSIX verbose
fdupes C Dup focus Specialized
ripgrep + --files Rust Yes Different focus

FAQ

Q: Why is it called fdfind on Ubuntu? A: Yes, due to a naming conflict. Just alias it: alias fd=fdfind.

Q: How much faster than find? A: Typically 3-10x. The gap widens on large repos because fd runs in parallel and skips .gitignore entries.

Q: How to delete all matches? A: fd -t f pattern -x rm. Add -0 | xargs -0 rm for extra safety (correctly handles spaces and newlines).

Sources

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados