fd のインストール:高速 find、gitignore、主要フラグ、find との使い分け
fd を入れ、ignore と主要フラグを押さえ、find が向く場面を分ける。
リポジトリでファイル名から探すとき find は強力ですがフラグと node_modules 地獄がつきものです。fd(sharkdp / Rust)は既定で再帰し、ignore 規則を尊重します。本稿は macOS/Linux への fd 導入、.gitignore・.fdignore、主要フラグ、find との対照 を hereink 向けにまとめ、ripgrep と同じターミナルスタックを想定します。
検索語はfd をインストールして gitignore を理解し find と比べる。fd --version から最初の検索、既定で何が除外されるか、mtime 等は find に任せる判断ができれば十分です。
導入brew · apt · dnf
ignore.gitignore · .fdignore
対照fd vs find
installignoreflags
fd が解くこと
名前検索を短く
fd config でパス部分一致。find の -iname より日常向き。
rg と同じ ignore
内容は rg、パス列挙は fd。bat との組み合わせは別記事。
公式
github.com/sharkdp/fd。fd --versionで確認。
インストール
- 1macOS
brew install fd - 2Debian/Ubuntu
apt install fd-find→ 多くはfdfind。alias fd=fdfind - 3Fedora/Arch
dnf install fd/pacman -S fd - 4Rust
cargo install fd-find
ignore 規則
- .gitignore 既定で有効
- .fdignore fd 専用
--no-ignore/-I/-H/--max-depth
fd Cargo.toml
fd --no-ignore vendor
fd -I secret
fd -H .env
fd --max-depth 1 Makefileよく使うフラグ
fd -e rs
fd -t f README
fd -i dockerfile
fd -g '*.min.js'
fd -E node_modules test
fd -e md -x wc -l {}fd と find
| 目的 | fd | find |
|---|---|---|
| 拡張子 | fd -e go | find . -name '*.go' |
| gitignore | 既定 ON | 手動 prune |
| mtime | find 向き | -mtime |
- 向く
- 日常のパス列挙、rg とのパイプ。
- 向かない
- POSIX のみの最小イメージ、複雑 find 式。
fdfind だけ?
Debian 系は alias fd=fdfind。
fd+bat 記事との違い?
そちらは bat とパイプ;本稿は ignore と find 対照に特化。
正規表現?
迷ったら素の fd 文字列、glob は -g。