背景

find コマンドというファイルを検索するコマンドがあります。 これはとても有名なコマンドであり、ネットで検索すれば大量の使い方の記事がヒットします。 大量のオプションが用意されており、様々な方法でファイルを検索できる便利なコマンドです。(まぁ、そんなに複雑な検索をしたいかという疑問はありますが…。)

対して、fd という rsut製のファイルを検索するツールが存在します。これは find よりも使いやすくて速いことを目指して作られています。

fing の設計思想は fd とは異なります。 fingfind コマンドとの互換を目指して設計しています。 そのため、find で作成されている script ファイルにおいても fing に置換するだけで動作することを目標としています。(オプションの全網羅は諦めていますが…) fd 並に速くて、find と同じ使用感を目指して作成しました。

インストール

Go で作成したため以下のコマンドでインストールが行なえます。

go install github.com/komem3/fing@latest

使い方

基本的には find コマンドを fing に置き換えるといいです。

例えば jpg ファイルの検索は以下のようになります。

fing -name *.jpg 

また、 fd の良いところである gitignore を反映してくれる機能もあります。 fd ではデフォルトでそのように動作しますが、fingでは -I オプションで指定します。

fing -I

これは fing 特有ですが gitignore に書かれているが無視しないといこともできます。 エッジケースですが、僕が欲しかったため追加しました。-EI オプションをクエリとともに使用します。 以下のコマンドは gitignore に .envrc が書かれていても、.envrc が検索結果に表示されます。

fing -I -name .envrc -EI

fdより速い???

benchmark を測ったところ fd よりも高速でした 🎉 なぜ rust 製のものに勝てるかは謎ですし計測結果を疑いましたが、結果が全てと信じています。

まとめ

find と同様のインタフェースで fd 並に早いファイル検索ツールを作成しました。 この記事で興味が出たら試しに使って見ていただけると嬉しいです。


作成した日と記事の作成日が開いたのは僕が遊戯王にハマったからで深い意味はないです…。マスターデュエル楽しいからしょうがいない。