同じマシンを使って日常的な作業を続けていくと、ホームディレクトリの中に多くのファイルが蓄積されていきます。また、「設定ファイル名は覚えているが、それがどのディレクトリに格納されているか分からない」といった問題に遭遇することもあるでしょう。このような場合、利用しているマシン内を適切に検索するのが一番です。今回はこうした、デスクトップ環境向けの検索アプリケーションに関するレシピをお届けします。
GNOMEの「ファイルの検索」機能
Ubuntuでは、GNOME標準の検索機能を利用することで、ファイル名での検索を行うことができます。[場所]→[ファイルの検索]からアクセスするか、「ファイルの検索」というアプレットを追加し、パネルから起動するのが便利でしょう(図1)。アプレットの追加方法は、第9回を参照してください。
アプレットの使い方は非常に単純で、[対象となる名前]欄に検索したいファイル名を入力し、[対象となるフォルダ]を選択して[検索]ボタンを押すだけです。(図2)では、ファイルシステム全体に対して、「resolv.conf」というファイル名を検索しています。
検索を行う場合、ファイル名だけでなく、ファイルの中身を考慮して検索したい場合があります。そのような場合は、「追加オプション」の指定を行うことで実現できます。(図3)では、「resolv.conf」というファイル名で、なおかつ、「nameserver」という文字列を含むファイルを検索しています。(図2)の結果と異なり、/usr/share/man/man5/resolv.conf.5.gzが検索結果に含まれていないことが分かるでしょう。
さらに、「適用する検索条件」を指定することで、より細かな検索を行うことができます。デスクトップ用途向けOSが標準で備える検索機能としてはごく標準的なものですが、Nautilus(ファイルマネージャ)組み込みの検索に比べると、かなり複雑な検索も行うことができます。
GNOMEの検索機能はfindコマンドのフロントエンドですので、これらの検索は内部ではfindコマンドを呼び出すことで実現されています。同じように手で入力することで、端末からも同じ結果を得ることができます。
たとえばファイル名だけの検索であれば、[端末]上で次のように操作することと同義です。
また、「nameserver」という文字列を含む検索は次のようになります。
もっとも、単に「resolv.conf」という名前のファイルを探したいのであれば、次のようにlocateコマンドを使った方が便利で高速です。
また、「nameserver」の文字列を含むファイルを得たいのであれば、egrep -lとlocateコマンドを組み合わせれば、findを使うよりも小さなコストで同じようなことができるでしょう[1]。
Hyper Estraierを使う
UbuntuにはデフォルトでTrackerというデスクトップ検索エンジンが導入されていますが、日本語を認識して検索することができないため、日本語ドキュメントを主に扱う場合にはあまり使い勝手が良いものではありません。
コマンドラインから利用でき、日本語周りの問題が少ない(かつ、検索精度が高い)選択として、Hyper Estraierを利用する方法があります。
パッケージ名は「hyperestraier」ですので、aptやSynapticなどを用いてインストールしてください。aptを用いたインストールは次のように行います。
インデックスの作成
Hyper Estraierの利用には、最初にインデックスを作成する必要があります。次のように、/home以下に専用のディレクトリを作ってしまうのが便利でしょう。最初にインデックス格納領域を作成して、必要なドキュメントの情報をインデックスに格納します[2]。インデックス作成コマンドを覚えるのは面倒ですので、シェルスクリプトを作成し、それを呼び出すようにすると便利でしょう。
まず、シェルスクリプトを格納するディレクトリを作成します。
次のコードをegdit上にコピー&ペーストし、保存します。
インデックス(casket)の保存ディレクトリを作成し、先ほど準備したシェルスクリプトに実行権限を与え、インデックス作成を行います。ディレクトリ以外が対象の直下に存在した場合などにエラーが返りますが、無視してください(あるいは検索指定をより細かく行ってください)。
インデックスを作成したら、以下のコマンドで検索が可能になります。以下は「pygtk」を検索した例です。
このままでは検索コマンドを覚えるのが大変ですので、次のようなエイリアスを.bashrcなどに記述するのが良いでしょう[3]。
エイリアスを登録したら、次のように利用することができます。
また、登録したインデックスは古くなりますので、定期的にインデックスを更新する必要があります。「VISUAL=gedit crontab -e 」で、次のような更新指定を登録しておくのが便利です。もちろんviやnanoに慣れている方はcrontab -eで問題ありません。
Google Desktopの利用
代表的なデスクトップサーチアプリケーションの一つであるGoogle DesktopをUbuntuで利用することもできます。http://desktop.google.com/ja/linux/にアクセスし、Debian/Ubuntu用のパッケージをダウンロードしてください(図5)。
ダウンロードしたファイルをダブルクリックすればダイアログが開きますので、[パッケージのインストール]ボタンを押下することでインストールできます(図6)。インストール後は[アプリケーション]→[Google デスクトップ]→[Google デスクトップの設定]で初期設定を行ってください。
[アプリケーション]→[Google デスクトップ]とたどり、通知領域にあるアイコンから操作を行います。Googleの通常の検索と同じ形で検索を行うことが可能です。一般的なデスクトップ用途であれば便利に利用できるでしょう。