ウェブサイト検索

Linuxでファイルを見つけるための「locateコマンド」をインストールする方法


locateは、Linuxで名前によってファイルを探すためのコマンドラインユーティリティで、findコマンドと同様です。しかし、locateはその対抗手段よりも効率的に動作します。これは、updatedbプログラムによって作成された1つまたは複数のデータベースを使用し、ユーザーが提供するパターンのいずれかに一致するファイル名を標準出力に印刷します。

locate コマンドは GNU findutils または mlocate パッケージによって提供されています。これらのパッケージは、プログラムの同じ実装を提供することで知られています。ほとんどの CentOS/RHEL システムでは、findutils が最初からインストールされていますが、locate コマンドを実行しようとすると、次のエラーに遭遇することがあります:

-bash: locate: command not found

この記事では、Linuxシステムでファイルを見つけるためのlocateおよびupdatedbコマンドを提供するmlocateパッケージのインストール方法を紹介します。

以下は、上記のエラーとfindutilsパッケージをクエリするサンプル出力です。

$ locate bash_completion.sh
rpm -qa | grep findutils

mlocateをインストールするには、Linuxディストリビューションに応じてYUMまたはAPTパッケージマネージャーを使用してください。

$ sudo yum install mlocate    [On CentOS/RHEL]
sudo apt install mlocate    [On Debian/Ubuntu]     

mlocateをインストールした後、updatedbを更新する必要があります。これはlocateコマンドがルートユーザーとしてsudoコマンドで使用するもので、そうしないとエラーが発生します。デフォルトのデータベース保存場所は/var/lib/mlocate/mlocate.dbです。

$ sudo updatedb

データベースが更新されたので、今度はlocateコマンドを実行してみてください。今度はうまくいくはずです。

$ locate bash_completion.sh

入力したパターンに正確に一致するものを見つけるには、この -b オプションと、以下の構文のように \ グロビングオプションを使用します。

$ locate -b '\bash_completion.sh'

注: LOCATE_PATH 環境変数を使用して、デフォルトデータベースやコマンドラインで -database フラグを使用して列挙されたデータベースの後に読み込まれる追加データベースへのパスを設定できます。

以上です!このガイドでは、Linuxシステムでlocateおよびupdatedbコマンドを提供するmlocateパッケージのインストール方法を示しました。下のフィードバックフォームを通じて、あなたの意見をお聞かせください。

関連記事: