macOS/Linuxでfdとbatをインストール:ファイル検索・シンタックスハイライトcat・rg連携

fd/batを入れ、最初の検索とハイライト表示を実行し、rgとパイプでつなぐ。

リポジトリで find と cat だけだとすぐ限界が来ます。fd と bat は Rust 製の後継で、fd は .gitignore を尊重しつつ名前や拡張子でパスを探し、bat は cat にシンタックスハイライトと行番号を足します。本稿は macOS/Linux のインストール、fd で探す、bat で読む、rg/grep と組み合わせる を hereink 向けにまとめます。

検索語はmacOS/Linux で fd と bat CLI をインストールする方法。両コマンドを入れ、最初の fd / bat を実行し、ファイル列挙と内容検索をパイプでつなげられる状態にします。

fdbrew · apt · dnf
batハイライト · 行番号
組合せfd · rg · bat

fd と bat が解くこと

日常の find 替わり

find . -name '*.ts' は長く node_modules も踏みがち。fd は既定で再帰し無視規則を読み、-e / -t で絞れます。

読みやすい cat

bat src/main.rs で言語検出とハイライト。--paging=never でページャ無効。

公式:github.com/sharkdp/fd、github.com/sharkdp/bat。fd --version と bat --version で確認。

macOS / Linux にインストール

  1. 1
    macOS(Homebrew)

    brew install fd bat。which fd bat で確認。

  2. 2
    Debian / Ubuntu

    sudo apt update && sudo apt install fd-find bat。実行ファイルが fdfind の場合は alias fd=fdfind。

  3. 3
    Fedora / Arch

    sudo dnf install fd bat または sudo pacman -S fd bat。

  4. 4
    任意:Rust

    cargo install fd-find bat。

fd でファイルを探す

fd config
fd -e tsx
fd -t f README
fd -i dockerfile

bat で表示

bat src/lib/utils.ts
bat --paging=never Dockerfile
bat -n package.json

grep / ripgrep (rg) と組み合わせ

目的例メモ
拡張子で絞って検索fd -e py | xargs rg "def main"fd で .py、rg で中身
検索してハイライト表示rg -l "TODO" src | xargs batファイル名だけ rg -l
grep でも可fd -e sh | xargs grep -n "set -e"rg が無い環境向け
向く
monorepo で設定・脚本・ログを毎日触る開発者。
向かない
IDE 一括リファクタ。Windows は scoop 等(README 参照)。
Ubuntu で fd ではなく fdfind?

Debian 系は fd-find パッケージで fdfind になることがあります。alias fd=fdfind で対応。

bat は cat の完全代替?

人間が読む用途向き。パイプでは bat --paging=never --plain か cat を使う。

fd と find?

mtime や権限など複雑条件は find。名前・拡張子の素早い列挙は fd。

端末で見つけたら図で揃える

スペースの作り方。

今すぐ開始