fd の概要
fd は、ファイルやフォルダを探すための無料でオープンソースのコマンドラインプログラムです。標準の find コマンドと同じ仕事を、ずっとシンプルな書き方でこなします。fd に続けて名前の一部を入力するだけで、現在のフォルダとその下にある一致するものをすべて色付きで一覧表示します。フォルダを並列に検索するので速く、初期設定では隠しファイルと .gitignore に書かれたものを飛ばします。fd は David Peter が開発し、MIT ライセンスと Apache License 2.0 のデュアルライセンスで公開されています。
fd は Apple シリコン搭載 Mac と Intel Mac のターミナルで動作し、Homebrew(brew install fd)か MacPorts でインストールできます。find のすべての機能を目指すのではなく、よく使う検索を使いやすい初期設定でカバーしています。
主な機能
fd を使えば、毎日のファイル検索が短く速くなります。
- シンプルな書き方:find -iname '*PATTERN*' の代わりに fd PATTERN。
- 正規表現と glob:初期設定は正規表現で、glob パターンでも検索できます。
- 非常に高速:フォルダを並列に検索します。
- 色付きの出力:ls と同じようにファイルの種類を色分けします。
- スマートケース:パターンに大文字が含まれない限り、大文字と小文字を区別しません。
- 適切なフィルタ:隠しファイルと .gitignore の対象を飛ばします。-H と -I で含められます。
- 拡張子:fd -e pdf のように、-e で拡張子からファイルを探せます。
- コマンドの実行:-x で結果ごとにコマンドを並列実行し、-X ですべての結果をまとめて 1 回実行します。
バージョン 10.5.0 の新機能
fd 10.5.0 では、2 つのオプションが追加され、いくつかの問題が修正されました。
- ファイル名全体が完全に一致するものだけを探す --exact オプションを追加
- --no-ignore-parent を打ち消す --ignore-parent オプションを追加
- 出力先がターミナルのとき、ファイル名に含まれる制御文字を無害化するように
- --full-path 使用時に、無効な作業フォルダを正しく扱うように
- 検索パターンにパスの区切り文字が含まれるときの警告をわかりやすく
fd のよくある質問
fd は無料ですか?
はい。fd は無料のオープンソースソフトで、MIT ライセンスと Apache License 2.0 のデュアルライセンスです。
Mac に fd をインストールするには?
Homebrew ならターミナルで brew install fd、MacPorts なら port install fd を実行します。Apple シリコン搭載 Mac 用と Intel Mac 用のビルド済みプログラムも GitHub のリリースページにあります。
fd と find の違いは?
fd は書き方がシンプルで、出力が色付きになり、スマートケースや、隠しファイル・除外ファイルを飛ばすといった使いやすい初期設定があり、とても高速です。find のすべての機能をカバーするわけではなく、よく使う検索に絞っています。
fd で拡張子からファイルを探すには?
-e に続けて拡張子を指定します。たとえば fd -e md と入力すると、現在のフォルダとその下にある Markdown ファイルがすべて表示されます。
fd で隠しファイルが見つからないのはなぜですか?
初期設定では、隠しファイル・隠しフォルダと .gitignore に書かれたものを飛ばすためです。隠しファイルを含めるには -H、除外されたファイルを含めるには -I、両方を付けることもできます。
fd は大文字と小文字を区別しますか?
fd はスマートケースを使います。小文字だけのパターンは大文字・小文字を問わず一致し、大文字を含むパターンは大文字・小文字まで正確に一致します。
fd で見つけたファイルごとにコマンドを実行するには?
-x を使うと、結果ごとにコマンドを並列実行します。たとえば fd -e zip -x unzip は、見つかった zip ファイルをすべて展開します。-X を使うと、すべての結果を引数にしてコマンドを 1 回だけ実行します。
fd で正規表現の代わりに glob パターンを使えますか?
はい。初期設定は正規表現ですが、--glob を付けると *.txt のような glob パターンで検索できます。
fd は fzf と組み合わせて使えますか?
はい。fd を fzf のファイル一覧の取得元に設定する人が多く、ファイルのあいまい検索が速くなり、.gitignore も尊重されます。
fd.FULLMAC.app の fd のダウンロードはどこから提供されていますか?
ダウンロードボタンは、インストール手順とリリースが載っている fd の公式 GitHub ページ https://github.com/sharkdp/fd につながっています。fd.FULLMAC.app がツールを改変したり再パッケージしたりすることはありません。
似ているアプリ
- tmuxtmux は、無料でオープンソースのターミナルマルチプレクサです。1 つのターミナルの中で複数のプログラムを、ウインドウや横に並んだペインに分けて動かし、キーボードで切り替えられます。いちばん便利なのはセッションです。セッションからデタッチしても中身はすべて動き続け、ターミナルを閉じたり SSH 接続が切れたりしても大丈夫です。あとでアタッチし直せば、中断したところから続けられます。tmux は Nicholas Marriott とコントリビュータが開発し、ISC ライセンスで公開されています。開発ツール
VigilVigil は、コーディングエージェントをチームとして動かすための、無料でオープンソースの Mac ネイティブターミナルです。複数のエージェントのウィンドウ間で自分でメッセージをコピーする代わりに、ルートのマネージャーエージェントにタスクを渡すと、マネージャーが自分のワーカーエージェントやサブマネージャーを起動します。詳細はツリーを下へ流れ、結果は要約としてマネージャーへ戻るので、マネージャーのコンテキストは軽く保たれます。ライブのノードツリーでチーム全体を一度に見渡せ、各ノードはエージェント自身のターミナル画面をそのまま保つため、どのノードでも開いて直接操作を引き継げます。開発ツール
SwitchShuttleSwitchShuttle は、よく使うターミナルコマンドをワンクリックやキーボードショートカットで実行できる Mac のメニューバーアプリです。コマンドを階層化したサブメニューに整理し、それぞれにグローバルホットキーと絵文字アイコンを割り当てれば、ターミナルを開いて入力しなくても、どこからでも実行できます。iTerm、Terminal、Warp、Alacritty、Hyper などのターミナルに対応し、各コマンドは現在のウィンドウ、新しいタブ、新しいウィンドウのいずれかで実行できます。開発ツール
tty7tty7 は Rust で書かれた GPU レンダリングのターミナルで、Zed の gpui と Alacritty のターミナルコアをもとに作られています。シェルとペインを持つのはウィンドウではなくバックグラウンドのサーバーなので、アプリを終了してもシェルは tmux なしで動き続けます。再起動後は、レイアウト、画面、対応エージェントの会話が元に戻ります。開発ツール
TabbyTabby(旧称 Terminus)は、SSH、Telnet、シリアル通信のクライアントとしても使える、細かく設定できるターミナルエミュレータです。タブと分割ペインを備えたローカルのターミナル、サーバーの接続マネージャ、ルーターやマイコンなどの機器向けのシリアルターミナルを、1 つのアプリでまかなえます。SSH のパスワードや鍵は暗号化されたボルトに保管でき、SSH 経由でファイルを転送でき、テーマやプラグインで見た目や機能を変えられます。Tabby は Eugene Pankov が開発しており、Mac、Windows、Linux で動作します。開発ツール
kittykitty は、GPU でテキストを描画する高速で高機能なターミナルエミュレータです。スクロールや大量の出力もなめらかに表示されます。タブと分割ウインドウを備え、複数のレイアウトが組み込まれているほか、トゥルーカラー、合字、絵文字に対応し、ターミナルの中に直接画像を表示する独自のグラフィックスプロトコルも持っています。スクリプトやコマンドラインから操作でき、kitten と呼ばれる小さなプログラムで機能を拡張できます。設定を引き継いだ SSH、ファイルの左右比較、Unicode 文字の入力などに使えます。kitty は calibre の開発者でもある Kovid Goyal が作っています。開発ツール
David Peter のその他のアプリ
FULLMAC.app はこのアプリをホストしていません。ダウンロードボタンは開発元のページにリンクしています。