MACのファイル高速検索「locate」コマンドやってみた

「MACでファイル検索する際には locate コマンドが便利だよー」と教えて貰ったので調べてみました。
検索するには find コマンドもあるんですが、こっちのが早いらしいです。
Linuxコマンド集 - 【 locate 】 ファイルを高速に検索する:ITpro

とはいっても、locate コマンドにはそれを有効にするために準備がちょびっと必要。。。という事で、そこからやってみましたの巻。

locate コマンドを使えるようにする

初期状態で「locate FILE_NAME」ってしても、ファイルは検索されません。
「var/db/locate.database がありません」というメッセージが表示されます。

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.

で、上に出ているメッセージのままなんですが、動作させるには locate.database が必要です。
DB作るには以下のコマンドやってください、って出てるんで実行します。

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

しばらく待ってから、再度 locate コマンドしてみます。
うーん。。。例えば locate php.ini とか?
そして、以下のように検索結果が出てきたらOKです。

$ locate php.ini
/Applications/MAMP/bin/php/php5.2.17/conf/php.ini
/Applications/MAMP/bin/php/php5.2.17/conf/php.ini-dist
/Applications/MAMP/bin/php/php5.2.17/conf/php.ini.temp
/Applications/MAMP/bin/php/php5.3.6/conf/php.ini
/Applications/MAMP/bin/php/php5.3.6/conf/php.ini.temp
/private/etc/php.ini.default

検索データの更新を行う

このDBファイルは更新が必要そうなので、その辺も併せて調べてみました。
$ updatedb で行けそうなんですが、やってみたら command not found (つω-`)
更に調べてみて再挑戦!

/usr/libexec/locate.updatedb: line 97: /var/db/locate.database: Permission denied

・・・ヽ(`Д´)ノ !!!
たいていこんな時には $ sudo で解決しそうなので、更にお試し!

$ sudo /usr/libexec/locate.updatedb

これでエラー・メッセージもなく完了できたみたいです丶(・ω・)ノ ヤター

あとがき

これで探しにくいファイルも見つかるようになりました。
あとはせっかくだから $updatedb っていうコマンドで同じ事ができるようにしたいな〜、とか思ったり思わなかったりですかね。

▲ to Top

トラックバック(0)

▲ to Top