"whereis"はどのようにファイルをそのようにすばやく見つけるのですか? [コピー]

最近、特定の名前のバイナリファイルを見つけようとしました。私はwhereis検索ユーティリティ(util-linuxパッケージの一部)を使用することにしました。同様のコマンドを使用するのと比較すると、半分の時間内にファイルを見つけることができますfind

私もlocatewhereis

これらのコマンドは、どのようにコマンドと比較してfindファイルをすばやく見つけることができますか?

ベストアンサー1

find一致するものを見つけるためにファイルシステム全体を盲目的にナビゲートします。すべてのディレクトリのすべてのファイルを見て、ファイルシステム全体をカバーするまで停止しないため、時間がかかります。

locateupdatedbまた、ファイルシステム全体をカバーしますが、事前に構築されたデータベース(コマンドで更新)を使用して一致するファイルを見つけることで、作業を高速化します。

whereisディレクトリ検索でもファイルを見つけることができますが、whichファイルシステム内の非常に特定の場所のサブセットのみを検索します(通常は適切$PATHに環境変数として指定されます$MANPATH)。また、最初の発生を防ぎ、実行時間を短縮できます。

おすすめ記事