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 はリアルタイムであることは明らかです。
これがアイデアを明確にするのに役立つことを願っています。ではごきげんよう。 :)