【コマンド詳細】locateコマンドの使い方とオプションまとめ

  • URLをコピーしました!
目次

locate コマンドとは?

locate コマンドは、Linux システム上でファイルやディレクトリを高速に検索するためのツールです。
locate は、あらかじめ作成されたデータベースを使用するため、
ディスク全体を検索する find コマンドよりもはるかに高速に動作します。

ただし、データベースは定期的に更新されるため、
最新のファイル変更が反映されない可能性があることに注意が必要です。

基本構文

locate [オプション] パターン
  • パターン: 検索するファイル名やパスの一部。
  • オプション: 検索結果をフィルタリングするための追加設定。

注意:locate コマンドは updatedb によって管理されるデータベースを参照します。
このデータベースは管理者権限で定期的に更新されます。

主なオプション一覧

オプション説明
-i大文字と小文字を区別せずに検索します。
-c一致した結果の数を表示します。
-l <数値>最大表示件数を制限します。
-r <正規表現>正規表現を使用して検索します。
--helplocate コマンドの使用方法を表示します。
--versionlocate コマンドのバージョン情報を表示します。

各オプションの実行例と結果

1. 基本的な使用

locate file.txt
結果
/home/user/documents/file.txt
/tmp/file.txt
解説

file.txt を含むすべてのパスが表示されます。

2. 大文字小文字を区別せずに検索 (オプション -i)

locate -i README
結果
/home/user/README.md
/home/user/Documents/readme.txt
解説

大文字と小文字を区別せずに検索します。

3. 結果の件数をカウント (オプション -c)

locate -c file
結果
42
解説

file に一致するエントリが 42 件あることを示します。

4. 表示件数を制限 (オプション -l)

locate -l 5 file
結果
/home/user/file1.txt
/home/user/file2.txt
/home/user/file3.txt
/home/user/file4.txt
/home/user/file5.txt
解説

最初の 5 件のみが表示されます。

5. 正規表現を使用して検索 (オプション -r)

locate -r '^/usr.*bin/python'
結果
/usr/bin/python3
/usr/local/bin/python3.9
解説

/usr から始まり bin/python を含むパスを検索します。

6. locate コマンドのバージョン情報を表示 (オプション --version)

locate --version
結果
locate (GNU findutils) 4.7.0

実用例

1. 特定の拡張子を持つファイルを検索

locate '*.log'
結果例:
/var/log/system.log
/home/user/logs/error.log
解説

*.log に一致するすべてのログファイルを検索します。

2. 更新されたデータベースを使用する

locate はデータベースを使用するため、新しいファイルは検索結果に表示されない場合があります。
この場合、管理者権限で以下を実行します:

sudo updatedb
解説

データベースが最新化され、直近のファイル変更が検索可能になります。

3. ユーザー権限で特定ディレクトリを検索

ユーザー権限でのデータベース更新を行う場合:

updatedb -l 0 -o ~/.mydb.db -U ~/my_directory
locate -d ~/.mydb.db myfile
解説

指定したディレクトリ内のファイルを対象とした独自データベースを作成し、検索を行います。

find コマンドとの違い

コマンド特徴
locateデータベースを使用するため高速。更新されていないデータベースには反映されない。
findリアルタイム検索。ファイルシステム全体を直接検索するため遅いが正確。

注意点

  • locate の検索結果はデータベースに依存するため、updatedb が定期的に実行されていることを確認してください。
  • システムによっては、特定のディレクトリ(例: /root)がデータベース更新の対象外になっている場合があります。

まとめ

locate コマンドは、高速で効率的なファイル検索を可能にする便利なツールです。
特にファイルシステムの大規模な検索において、そのスピードは find コマンドに比べて大きな利点を持ちます。
ただし、最新の変更を反映するためにデータベースの更新を忘れないようにしましょう。

目次