MacOS Xでlocateとupdatedb

ファイル検索をするとき、MacOS Xだと、当然Spotlightなのですが、訳あってシェル上でしか操作できないときもあるのです。そんなとき、locateコマンドが便利なのですが、その前提であるupdatedbが実行されていないので、探せなかったのです。
Linuxであれば、たいていはrootでupdatedb、あるいはsudo updatedbでインデックス更新しますが、MaxOS Xだとそのままでは実行できません。

/usr/libexec/locate.updatedb

で実行できましたが、場合によっては、下記のエラーになると思います。

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied

こんなときはrootになってから、

cd /
/usr/libexec/locate.updatedb

とルートディレクトリに移動してから実行してみてください。少なくとも今回は問題なく実行できました。そしてもともと使いたかったlocateコマンドも無事に使えるようになりました。めでたし、めでたし。

参考URL:
Error when update “locate” database

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です