No.031ファイルとフォルダ

locate

ロケート・ファイル名検索

知識レベル 基礎安全に試せる一般ユーザーで使える

ファイルシステム全体を毎回たどるのではなく、索引化されたデータベースから名前検索します。高速ですが、直前に作成・削除したファイルは反映されていないことがあります。

答えよく使う形

  1. 名前候補を高速に列挙できます
  2. 一致件数だけを確認できます
  3. 大文字小文字を区別せずに検索します
visitor@goodly: ~

$ locate passwd | head

/etc/passwd
/usr/share/man/man5/passwd.5.gz
...

$ locate -c systemd

128

$ locate passwd

覚える順番の中でLPIC-1・10 駅め / 106

どんなコマンド?

こんなときに

ファイル名の候補を素早く洗い出したい時、設定ファイルやコマンド関連ファイルの場所を概観したい時、名前の一部しか覚えていないファイルを探したい時に使います。

locateは、ファイル名やパス名を高速に探すためのコマンドです。findのように実際のディレクトリをたどって探すのではなく、updatedbなどで作られた索引を検索します。そのため、大規模なシステムでも非常に素早く候補を一覧できます。

最大の利点は速度ですが、同時に最大の弱点は鮮度です。データベースが古いと、既に消えたファイルが表示されたり、新しく作ったファイルが見つからなかったりします。そのためlocateの結果は「候補一覧」として使い、必要なら-eやls、statで現存確認を行います。

実装にも差があります。現代のディストリビューションではplocate、mlocate、findutils版locateなど複数系統があり、使えるオプションや既定動作が少し異なることがあります。記事では、まず「データベース検索である」という原則を押さえるのが重要です。

書き方とオプション

組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。

$ locate

使用例と実行結果

行を押すとコピーできます。

/etc/passwd
/usr/share/man/man5/passwd.5.gz
...
名前候補を高速に列挙できます。
128
一致件数だけを確認できます。

まず安全に試す

3分ミッション

手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。

0 / 2

つまずいたとき

作ったばかりのファイルがlocateで見つからない

原因データベース更新前で、最新状態が反映されていません。

こうするupdatedbの実行時期を確認し、必要ならfindで直接探します。

locateに出たのに実体が存在しない

原因古い索引が残っています。

こうする-eで現存確認を行うか、lsやstatで検証します。

終わったときの数(戻り値)

$ echo $?

  • 0正常終了。検索や件数表示に成功しました。
  • >0データベースがない、読取権限がない、不正なオプションなどで失敗しました。

気をつけることと入れ方

気をつけること

危険度は低いですが、検索結果を現存保証と誤解すると事故のもとです。削除済みの候補が出ることや、新規作成分が未反映であることを常に意識してください。

環境による違い

locateは実装差が大きく、findutils版、mlocate系、plocate系で細かなオプションが異なります。多くの環境で高速検索という役割は共通ですが、記事では「データベース依存」「未導入環境がある」の二点を明記するのが安全です。

確かめた環境2026-04-09 に確認

よくある質問

locateとfindは何が違いますか。

locateは索引検索で速く、findは実ファイルシステムをたどるので条件指定と鮮度に強いです。

なぜ環境によって結果やオプションが違うのですか。

実装が複数あり、plocateやmlocateなどで詳細が異なるためです。

資格試験では

  • LinuC レベル1大事1.02.4 ファイルの配置と検索locateは、ファイルの配置確認や検索に関わる学習項目です。
  • LPIC-1大事104.7 システムファイルの検索と適切な配置locateは、システム上のファイルやコマンドを見つける技能と関係します。
  • 共通基礎大事Linuxコマンド基礎

locate を最後まで読みました。

Linux コマンド辞典に戻る54 / 144

Goodly のメニュー