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 で確認。

インストール

  1. 1
    macOS

    brew install fd

  2. 2
    Debian/Ubuntu

    apt install fd-find → 多くは fdfind。alias fd=fdfind

  3. 3
    Fedora/Arch

    dnf install fd / pacman -S fd

  4. 4
    Rust

    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

目的fdfind
拡張子fd -e gofind . -name '*.go'
gitignore既定 ON手動 prune
mtimefind 向き-mtime
向く
日常のパス列挙、rg とのパイプ。
向かない
POSIX のみの最小イメージ、複雑 find 式。
fdfind だけ?

Debian 系は alias fd=fdfind。

fd+bat 記事との違い?

そちらは bat とパイプ;本稿は ignore と find 対照に特化。

正規表現?

迷ったら素の fd 文字列、glob は -g。

モジュールが見えたら図で揃える

スペースの作り方。

今すぐ開始