find
¶ファイルを選択するためにfind
ユーティリティーを使うことにより、Diredバッファーに表示する一連のファイルを、より柔軟に選択できます。
ワイルドカードパターンに名前がマッチするファイルを検索するには、M-x find-name-diredを使います。これは引数directoryとpatternを読み取り、directoryおよびそのサブディレクトリーで、名前がpatternにマッチするすべてのファイルを選択します。
これにより選択されたファイルはDiredバッファーに表示され、通常のDiredコマンドが利用可能です。
ファイルの名前ではなく内容をテストしたいときは、M-x
find-grep-diredを使用します。ものコマンドはミニバッファーで2つの引数directoryとregexpを読み取ります。これはdirectoryまたはそれのサブディレクトリーで、内容がregexpにマッチするすべてのファイルを選択します。このコマンドは、プログラムfind
およびgrep
を実行することにより機能します。Emacs下でのGrepによる検索のM-x
grep-findも参照してください。正規表現を記述するときは、Emacsにたいしてではなく、grep
にたいして記述することを忘れないでください(与えられたregexpに内容がマッチするファイルを表示する別の方法として、%
g regexpがあります。Diredでのマークとフラグを参照してください)。
この系列でもっとも一般的なコマンドはM-x
find-diredで、これはfind
がテストできる任意の条件を指定することができます。これはミニバッファーで2つの引数directoryとfind-argsを受け取ります。このコマンドは、find
がどのような条件でテストを行なうかを指定するfind-argsを引数として、directoryでfind
を実行します。このコマンドを使うためには、find
の使い方を理解する必要があります。
これらのコマンドで生成されるリストの書式は変数find-ls-option
により制御されます。これは一対のオプションです。1番目にファイル一覧を生成するためにfind
をどのように呼び出すか、2番目にその出力をDiredが解析するかを指定します。
コマンドM-x locateは、locate
プログラムと似たインターフェースを提供します。M-x
locate-with-filterも同様ですが、与えられた正規表現に名前がマッチするファイルだけを保持します。
これらのバッファーは、通常のDiredバッファーと完全に同じようには機能しません。ファイル操作は機能しますが、常にバッファーを自動的に更新するわけではありません。gでバッファーをリバートすると、挿入されたサブディレクトリーは削除され、フラグとマークはすべてリセットされます。