Next: , Previous: , Up: Dired (ディレクトリーエディター)   [Contents][Index]


30.16 Diredとfind

ファイルを選択するためにfindユーティリティーを使うことにより、Diredバッファーに表示する一連のファイルを、より柔軟に選択できます。

ワイルドカードパターンに名前がマッチするファイルを検索するには、M-x find-name-diredを使います。これは引数directorypatternを読み取り、directoryおよびそのサブディレクトリーで、名前がpatternにマッチするすべてのファイルを選択します。

これにより選択されたファイルはDiredバッファーに表示され、通常のDiredコマンドが利用可能です。

ファイルの名前ではなく内容をテストしたいときは、M-x find-grep-diredを使用します。ものコマンドはミニバッファーで2つの引数directoryregexpを読み取ります。これはdirectoryまたはそれのサブディレクトリーで、内容がregexpにマッチするすべてのファイルを選択します。このコマンドは、プログラムfindおよびgrepを実行することにより機能します。Emacs下でのGrepによる検索M-x grep-findも参照してください。正規表現を記述するときは、Emacsにたいしてではなく、grepにたいして記述することを忘れないでください(与えられたregexpに内容がマッチするファイルを表示する別の方法として、% g regexpがあります。Diredでのマークとフラグを参照してください)。

この系列でもっとも一般的なコマンドはM-x find-diredで、これはfindがテストできる任意の条件を指定することができます。これはミニバッファーで2つの引数directoryfind-argsを受け取ります。このコマンドは、findがどのような条件でテストを行なうかを指定するfind-argsを引数として、directoryfindを実行します。このコマンドを使うためには、findの使い方を理解する必要があります。

これらのコマンドで生成されるリストの書式は変数find-ls-optionにより制御されます。これは一対のオプションです。1番目にファイル一覧を生成するためにfindをどのように呼び出すか、2番目にその出力をDiredが解析するかを指定します。

コマンドM-x locateは、locateプログラムと似たインターフェースを提供します。M-x locate-with-filterも同様ですが、与えられた正規表現に名前がマッチするファイルだけを保持します。

これらのバッファーは、通常のDiredバッファーと完全に同じようには機能しません。ファイル操作は機能しますが、常にバッファーを自動的に更新するわけではありません。gでバッファーをリバートすると、挿入されたサブディレクトリーは削除され、フラグとマークはすべてリセットされます。