名前が示すように、Linuxのlocateコマンドは、ファイルの検索(検索)に使用されます。構文は次のとおりです。
locate [options] filename
Locateコマンドを使用するのは本当に簡単ですが、多くのifとbutが付属しています。手始めに、ファイルが見つからない場合でも、必ずしもファイルがシステムに存在しないことを意味するわけではありません。
今すぐ混乱しないでください。 Locateコマンドがどのように機能し、ファイルを検索するためにどのように使用できるかを説明します。
Linuxでのlocateコマンドの使用
Locateコマンドは、インデックス、つまりファイルの場所のデータベースで機能します。このコマンドを使用すると、ファイルシステム全体を検索するのではなく、このインデックスを参照します。これが、Linuxでファイルをすばやく見つけることができる理由です。
一部のLinuxディストリビューションは、ファイルシステム全体に定期的に自動的にインデックスを付けます。このインデックスを手動で作成することもできます(この記事の後半で紹介します)。
Locateコマンドの使用は非常に簡単です。ファイル名を指定するだけです:
locate filename
結果には、指定したファイルが見つかったすべての場所が表示されます。
[email protected]:~$ locate desktop.iso
/home/abhishek/desktop.iso
最良の部分は、ファイルを見つけるために特定のディレクトリにいる必要がないことです。 Locateコマンドはファイルシステムではなく、インデックスを検索することを忘れないでください。これが、ファイルを探すときにパスやディレクトリを指定する必要がない理由です。
-iオプションを使用して、大文字と小文字を区別しない検索を実行することもできます。
[email protected]:~$ locate -i desktop.iso
/home/abhishek/desktop.iso
/home/abhishek/Downloads/Desktop.iso
結果には、名前に検索語が含まれるすべてのファイルが表示される場合があることに注意してください。
[email protected]:~$ locate -i desktop
/home/abhishek/eoan-desktop-amd64.iso
/home/abhishek/Bionic-Desktop-amd64.iso
/home/abhishek/desktop.iso
/home/abhishek/Downloads/Desktop.iso
Locateで正規表現を使用することもできます:
locate -r regex_expression
updatedbを使用してlocateコマンドの独自のインデックスを作成する
これは情報提供のみを目的としており、使用する必要はないと思います。
現在のディレクトリ(およびそのサブディレクトリ)のインデックスを作成する場合は、次のようにupdatedbコマンドを使用できます。
updatedb -l0 -U my_directory -o index_file
このインデックスファイルを作成したら、locateコマンドにこのインデックスを明示的に使用するように依頼できます。
locate -d index_file file_name
検索は検索コマンドよりも優れていますか?
あまり変更されていないディレクトリ構造でファイルを検索する場合は、locateコマンドが適しています。とても速いです。
ただし、findコマンドには、特に複雑な検索オプションを実行するための多くのオプションがあります。
どちらのコマンドにも使用法があります。私の意見では、怠惰ですぐに結果が必要な場合は、locateを使用してください。結果が気に入らない場合は、検索コマンドに切り替えてください。
どう思いますか?