「find」はファイルやディレクトリを検索するためのLinuxのコマンドです。findのより高速かつユーザーフレンドリーなRust製代替ツール「fd」が開発されているとのことなので、実際に使い勝手を確かめてみました。

GitHub - sharkdp/fd: A simple, fast and user-friendly alternative to 'find'

https://github.com/sharkdp/fd

fdはWindowsでも使用可能なので、今回はWindowsでレビューを行います。まずはfdをインストールするため、スタートメニューを開いて「powershell」と検索し、検索結果にあるWindows PowerShellの「管理者として実行する」をクリック。



下記のコマンドを入力してfdをインストールします。

winget install sharkdp.fd

「インストールが完了しました」と出れば準備完了。



早速fdを使用してみます。「fd [検索文字列]」と入力することで、現在のフォルダ以下にある[検索文字列]を含むファイル・フォルダの一覧を出力してくれます。



「fd [検索文字列] [フォルダ名]」のように2つ目の引数でフォルダを指定するとそのフォルダ以下で検索することが可能。



軽く使ってみた感じでは爆速で動作しているものの、「実際どれくらい基本コマンドよりも処理速度が出るのか」を確かめてみます。比較対象には、Linuxのfindに相当する「dir -s」というコマンドを使い、処理速度の測定には「Measure-Command」を使います。「dir -s」のスピードをチェックするには、以下のコマンドを実行すればOK。

Measure-Command { dir -s }

実行時間は約1.57秒でした。



同様に、以下のコマンドで「fd」のスピードを確かめます。

Measure-Command { fd }

fdは同じ処理を約0.25秒で完了しました。実に6倍以上の速度で処理を行えていることが分かります。



なお公式リポジトリの説明によると、スピード以外に以下の長所があるとのことです。

・構文が直感的

・正規表現およびグロブパターンに対応

・ファイルタイプごとにカラフルな表示

・並列コマンド実行をサポート

・小文字で検索すると大文字と小文字を区別せず、大文字を混ぜると大文字と小文字を区別する

・標準で隠しディレクトリとファイルを無視

・標準で.gitignoreのパターンを無視

・コマンド名が2文字しかなく、4文字のfindよりも50%短い