find
実際のシステムで検索します。低速ですが、常に最新であり、より多くのオプション (サイズ、変更時間など) があります
locate
以前に構築されたデータベースを使用します (コマンド updatedb
)。はるかに高速ですが、「古い」データベースを使用し、名前またはその一部のみを検索します。
いずれにせよ、man find
と man locate
さらに役立ちます。
locate
の両方 そして find
コマンドはファイルを見つけますが、まったく異なる方法で動作します。
locate
オフライン モードで動作します:
- 簡単に説明すると、slocate と呼ばれる Unix システムのファイル インデックス データベース Unix システムに同梱されているすべてのファイルの場所を一覧表示します。
locate
を実行すると 、そのデータベースを使用して特定のファイルを検索します。locate
の問題 検索したいファイルを作成したばかりの場合、 locate slocate が原因で動作しません データベースが最新ではありません。この問題を解決するには、updatedb
を使用できます。 slocate を更新するには データベース。locate
を実行しています もう一度、新しく作成されたファイルを見つけます。したがって、多くの Linux システム管理者はcron
を使用しています。 slocate を定期的に更新するジョブ データベース。
find
オンライン/「リアルタイム」モードで動作します。
- 実際にすべてのディレクトリを検索して、指定された特定のファイルを見つけ、各ファイルを 1 つずつ調べます。したがって、多くの I/O 呼び出しが必要です。
したがって、その性質に基づいて、locate は find よりも高速ですが、find はリアルタイムであることは明らかです。
これがアイデアを明確にするのに役立つことを願っています。ではごきげんよう。 :)