[locate] locateコマンドを実行するとエラーになる

すばやくファイルを検索するときに非常に役立つ「locate」コマンドですが、

対象サーバで初めて使う場合や、インストール直後だと以下のようなメッセージが表示されることがあります。

 

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

 

日本語環境だと以下の様なメッセージになると思います。

locate: stat () `'/var/lib/mlocate/mlocate.db' できません: そのようなファイルやディレクトリはありません

 

エラーメッセージは一見、権限の問題のようにも見えるのですがそうではなく、以下のコマンドを実行することで解決できます。

updatedb

 

locateコマンドはあらかじめ構築した検索インデックスのデータベース(ファイル)を元に高速に検索をします。

このコマンドは、データベースを再構築してくれるので、なにかをインストールした直後などで、locateの検索にひっかからないファイルがある場合にも、コマンドを実行することで検索対象に含まれるようになります。

 

仕組みを知っていればなんてことはないのですが、備忘録的に。