【 locate 】コマンド――ファイルを名前で検索する:Linux基本コマンドTips(30)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「locate」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ファイルを探すための「locate」コマンドです。
locateコマンドとは?
「locate」は、ファイル名やディレクトリ名からファイルを探すためのコマンドです。「locateデータベース」と呼ばれるデータベースファイルを使うので高速に動作しますが、locateデータベースを更新しないと新しいファイルを探すことはできません。
locateコマンドの主なオプション
locateコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-d パス | --database= パス | データベースの位置を指定する |
ファイル名の一部からファイルを探す
「locate ファイル名」で、指定したファイルを探します。指定するのはファイル名の一部でも構いません。
例えば、「locate bashrc」を実行すると、「bashrc」というファイルを探します。しかし、locateコマンドではファイル名やディレクトリ名の一部でもヒットするので、「bashrc」だけではなく、「.bashrc」もヒットすることになります
「locate .bashrc」と指定して実行すれば、「/etc/bashrc」は対象外になります。一方、「.bashrc」を除外したい場合は、「locate /bashrc」と指定して実行します(画面1)。
コマンド実行例
locate bashrc
(「bashrc」だけではなく、「.bashrc」もヒットする)
locate /bashrc
(「.bashrc」は除外される)
locateコマンドでは「/」や「.」を特別扱いしません。コマンドの実行イメージとしては、ファイルのフルパスが書かれたリストから「grep」するような感じになります。
locateデータベースを更新する
locateコマンドは、ファイル名のリストが記録された「locateデータベース」と呼ばれるデータベースを参照してファイルを検索します。ディスクを見に行くのに比べて高速ですが、ファイルが新たに追加された場合、データベースが更新されない限り、検索結果に反映されません。
locateデータベースは「updatedb」コマンドで更新します。デフォルトで定期的に自動実行されるようになっていますが、手動で更新することも可能です。手動更新の際にはroot権限が必要なので、「su」または「sudo」コマンドを使用してください。
コマンド実行例
$ sudo updatedb
(sudoが使えない場合はsuコマンドを使うか、rootユーザーでログインして実行)
# updatedb
以下の画面2の実行例では、「/etc/bashrc」をデスクトップにコピーしていますが、コピーした直後ではlocateコマンドにヒットしません。updatedbコマンドの実行後は、デスクトップにコピーした「bashrc」もヒットするようになります。
grepコマンドと組み合わせる
locateコマンドではヒットするファイルが多すぎる場合、「grep」コマンドで結果を絞り込むとよいでしょう。
- [参考]grepコマンド――特定の文字を含む行を抽出する(本連載 第9回)
- [参考]grepコマンド(応用編その1)――空白を含む文字列を検索する/正規表現を使って検索する(本連載 第10回)
- [参考]grepコマンド(応用編その2)――複数の文字列を検索する(本連載 第11回)
例えば、「locate profile」を実行すると、ディレクトリ名の一部やファイル名の一部に「profile」を含む全てが対象となるので、かなりの数がヒットします。
「locate /profile」としても、「profile.h」や「profiles」のように「profile」から始まるファイルやディレクトリも対象となるので、「名前がprofile」だけに絞ることができません。
そこで、「grep」コマンドを使って、「profileで終わっている行」で絞り込んでみましょう。具体的には、行末を意味する「$」記号と組み合わせて、「profile$」と指定します(画面3)。
コマンド実行例
locate /profile | grep profile$
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.