Linux でファイル名からファイルの所在を見付けるのに最も便利なのは locate コマンドです。locate コマンドを利用するためには、インデックスが作成されている必要があります。インデックス作成には updatedb コマンドが使われます。24時間稼働しているサーバーでは updatedb は自動的に深夜に実行されるようですが、デスクトップとしてLinux を使っている場合は root アカウントで時々 updatedb を起動する必要があります。大体、次のような手順になります。
$ su Password: (root アカウントのパスワードを入力) # updatedb & [1] 13912 # exit $ locate .pm
上のように locate .pm と入力すると ディスクの中の Perl モジュールのリストを即座に表示してくれます。
locate コマンドだけでも、十分強力ですが、これを、wgrep のときと同じようにハイパーリンクにしようと思います。まず、locate の出力をHTML形式にするスクリプト locf.pl を作ります。
ファイル名:locf.pl
#!/usr/bin/perl
while (<>) {
chop;
print "<a href=\"$_\">$_</a><br>\n";
}
次に locate の出力をハイパーリンクにするスクリプト wlocate を作成します。
ファイル名:wlocate #!/bin/sh exec locate $@ | locf.pl | w3m -T text/htmllocf.pl と wlocate のパーミッションを実行可能にします。
$ chmod +x locf.pl wlocate準備が整ったところで、コンソールから wlocate を使ってみましょう。
$ wlocate .pmlynx を利用 llocate
lynx を使った llocate も作れます。
ファイル名:llocate #!/bin/sh locate $@ | locf.pl > ~/.locf.html exec lynx ~/.locf.html追記:wlocate + grep ができます。
wlocate で出力されるリストが長過ぎて grep でフィルターしたいときがあります。そんなときは locf.pl を単体で使って下のようにすることができます。
$ locate php | grep manual.html | locf.pl | w3m -T text/html