Installer fd et bat sur macOS et Linux : trouver des fichiers, cat coloré, pipes avec rg
Installer fd/bat, lancer la première recherche et affichage, enchaîner avec rg.
Avec seulement find et cat, on sature vite. fd et bat sont des remplaçants Rust : find and reading sources with cat gets old fast. fd and bat are Rust-based replacements: fd respects .gitignore while finding paths by name or extension; bat is a syntax-highlighting cat with line numbers and paging. Ce guide couvre l’installation macOS/Linux, fd pour trouver, bat pour lire, et les pipes avec rg/grep pour les lecteurs de hereink.
La requête est how to install fd and bat CLI tools on macOS and Linux. You should finish with both commands installed, a first fd and bat run, and a simple pipeline that finds files then searches or previews them.
Ce que fd et bat règlent
fd instead of daily find
find . -name '*.ts' is verbose and often walks node_modules. fd recurses by default, honors ignore rules, and exposes -e, -t, and case flags—ideal for narrowing a file set before editing or searching.
bat makes cat readable
bat src/main.rs detects language, highlights syntax, shows line numbers, and uses a pager (disable with --paging=never). Configs, logs, and CI snippets are easier to scan than plain cat.
Upstream:
github.com/sharkdp/fdandgithub.com/sharkdp/bat. After install runfd --versionandbat --version.
Installer sur macOS et Linux
- 1macOS (Homebrew)
brew install fd bat. Verify withwhich fd batand the version flags. Same formula on Apple Silicon and Intel. - 2Debian / Ubuntu
sudo apt update && sudo apt install fd-find bat. The binary may be namedfdfind; addalias fd=fdfindin your shell or follow the package note to exposefd. Check withfdfind --versionorfd --version. - 3Fedora / Arch
Fedora:
sudo dnf install fd bat. Arch:sudo pacman -S fd bat. If repos lag, grab release binaries from GitHub and put them onPATH. - 4Optional: Rust
With Rust installed:
cargo install fd-find bat. Slower compile, useful when packages are missing or stale.
Trouver des fichiers avec fd
fd config
fd -e tsx
fd -t f README
fd -i dockerfile
fd \.env$ /etc --followLike ripgrep, fd reads .gitignore in Git trees. To include ignored paths, see upstream flags such as --no-ignore—expect much more output.
Afficher avec bat
bat src/lib/utils.ts
bat --paging=never Dockerfile
bat -n package.json
bat src/*.goTweak theme via ~/.config/bat/config or BAT_THEME; list themes with bat --list-themes. The bat README shows an optional cat alias—only if you want it.
Combiner avec grep / ripgrep (rg)
| Goal | Example | Note |
|---|---|---|
| Search inside one extension | fd -e py | xargs rg "def main" | fd narrows to .py, rg searches content |
| Search then highlight | rg -l "TODO" src | xargs bat | rg -l lists files; bat opens each |
| Piped output | rg -n "error" app.log | bat -l log | -l log sets language for highlighting |
| Classic grep | fd -e sh | xargs grep -n "set -e" | Works without rg; rg is usually faster—see our ripgrep guide on this site |
- Convient
- Monorepo work: configs, scripts, logs; developers who want shorter find syntax and readable terminal previews.
- Ne convient pas
- IDE-wide refactor or GUI search. This guide focuses on macOS/Linux package paths; on Windows use scoop/chocolatey per upstream README.
Ubuntu only has fdfind, not fd?
Debian-family packages often ship fd-find with a fdfind binary. Use alias fd=fdfind or a compatibility package that provides the fd name.
Can bat replace cat in scripts?
For human reading, yes. For pipelines that need plain stdout, use bat --paging=never --plain or keep cat so pagers and decorations do not break downstream tools.
fd or find?
Complex mtime, permissions, or -exec jobs stay on find. Quick name/extension lists are shorter with fd. Keep both.
Après la recherche terminal, aligner sur un schéma
Once fd/rg point at modules, service boundaries still belong on one shared board. See créer un espace.