#前書き
環境構築をしていた中で最も活躍したと思われるlocateコマンドのインストール方法とその使い方について紹介します。
#locateコマンドとは
lcoateコマンドとは検索用のデータベースを構築することでfindコマンドより高速にファイルやディレクトリを検索することのできるコマンドです。
#locateコマンドの使い方
使い方は簡単です。以下のようにすると.zprofileファイルを検索することができます。1
% locate .zprofile
他にもオプションがあるので、詳しくはmanコマンドで調べてください。
#locateコマンドのインストール方法
##Ubuntuの場合
Ubuntu 18.04.5 LTSで動作確認しました。以下のaptコマンドによりインストールすることができます。
$ sudo apt install mlocate
インストールした後にデータベースを作成する必要があります。以下のコマンドを打てばデータベースを作成できます2$^{,}$3。
$ sudo updatedb
また、データベースの更新頻度の設定ファイルは/etc/cron.daily/mlocate
です。デフォルトでは/etc/cron.daily
にあるファイルで設定されている場合は毎日実行されますが、その更新頻度や時間は/etc/anacrontab
を確認してください。
さらに、ファイルやディレクトリの変更をした後に探す場合はデータベースを自分でアップデートする必要があるので、sudo updatedb
でアップデートしてください3。
##Macの場合
Mac 11.0.1で動作確認しました。Ubuntuよりも多少インストールが面倒かもしれません。
まず、locate (適当なファイル名)
を実行しようすると、以下のようなWarinigが出るので、書かれている通りのコマンドをコピペします。
% locate (適当なファイル名)
WARNING: The locate database (/var/db/locate.database) does not exist.
To create the database, run the following command:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
Please be aware that the database can take some time to generate; once
the database has been created, this message will no longer appear.
% sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
上記のコマンドを打つことでデータベースが作成されます。ターミナル上ではすぐに終わっているように見えますが裏でデータベースが作成されているので、数分後にlocateコマンドでの検索が有効になります。
また、データベースの更新頻度の設定ファイルは/System/Library/LaunchDaemons/com.apple.locate.plist
です4。デフォルトでは週に一回更新されています。
さらに、ファイルやディレクトリの変更をした後に探す場合はデータベースを自分でアップデートする必要があるので、以下のコマンドでアップデートしてください3。
% sudo /usr/libexec/locate.updatedb
コマンドが長くて面倒な場合は以下のように.zprofile
にaliasを設定しておけばupdatedb
のみ打てばアップデートできるようになります。
#updatedb settings
alias updatedb="sudo /usr/libexec/locate.updatedb"
#参考