Linuxでコマンドファイルの保存場所を探したい場合,次のように指定するだろう。
$ whereis perl |
しかし,この方法では環境変数のパス指定によるディレクトリ下でなければ検索されない。すべてのディレクトリを捜査するには,「探しているファイルが見つからない」のような方法もあるが,時間がかかると共に,こまめに検索しているとハードディスクへのストレスが高くなるのが気にかかる。
そこで便利なのがlocateコマンドだ。このコマンドであれば,専用のデータベースが用意されているため,ほぼ瞬時に探し出すことができる。
$ locate perl |
しかし,さまざまなデーモンやCronを設定しているとlocateのデータベース更新時にハードディスクへの多大な負荷が気になってしまうこともある。
locateによるファイル検索を行う頻度が少ない場合には(あるいは手動でデータベース更新を行うと決めた場合),毎朝4時の自動データベース更新を停止しておくのがよいだろう。次のように設定すれば停止できる。
# vi /etc/cron.daily/slocate.cron #!/bin/sh #/usr/bin/slocate -u -f "nfs,smbfs,ncpfs,proc,devpts" -e "/tmp,/var/tmp,/usr/tmp,/afs,/net" |
※上記のように,/usr/bin/slocateコマンドをコメントアウト「#」すればよい。
Copyright © ITmedia, Inc. All Rights Reserved.