「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 っていうコマンドで同じ事ができるようにしたいな〜、とか思ったり思わなかったりですかね。