最近、特定の名前のバイナリファイルを見つけようとしました。私はwhereis
検索ユーティリティ(util-linuxパッケージの一部)を使用することにしました。同様のコマンドを使用するのと比較すると、半分の時間内にファイルを見つけることができますfind
。
私もlocate
。whereis
これらのコマンドは、どのようにコマンドと比較してfind
ファイルをすばやく見つけることができますか?
ベストアンサー1
find
一致するものを見つけるためにファイルシステム全体を盲目的にナビゲートします。すべてのディレクトリのすべてのファイルを見て、ファイルシステム全体をカバーするまで停止しないため、時間がかかります。
locate
updatedb
また、ファイルシステム全体をカバーしますが、事前に構築されたデータベース(コマンドで更新)を使用して一致するファイルを見つけることで、作業を高速化します。
whereis
ディレクトリ検索でもファイルを見つけることができますが、which
ファイルシステム内の非常に特定の場所のサブセットのみを検索します(通常は適切$PATH
に環境変数として指定されます$MANPATH
)。また、最初の発生を防ぎ、実行時間を短縮できます。