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 も参照してください。grep 用の正規表現は、Emacs
用ではなくファイル用に記述することを忘れないでください。(指定した正規表現に一致する内容を持つファイルを表示する別の方法として % g regexp コマンドがあります。Dired のマークとフラグ を参照してください。)
このシリーズで最も汎用的なコマンドは M-x find-dired で、find で判定可能なあらゆる条件を指定できます。このコマンドは2つのミニバッファ引数 directory と find-args を受け取り、directory 内で find を実行し、find-args を渡して find
にどの条件を判定すべきかを伝えます。このコマンドを使用するには、find
の使い方を知っておく必要があります。
これらのコマンドによって生成されるリストの形式は、変数 find-ls-option
によって制御されます。これは一対のオプションであり、前者はファイルリストを生成するための find の呼び出し方法を指定し、後者はDiredに出力を解析させるよう指示するものです。
コマンド M-x locate は、locate
プログラムと同様のインターフェースを提供します。M-x locate-with-filter
も同様ですが、ファイル名が指定された正規表現に一致するファイルのみを保持します。
これらのバッファは、通常のDiredバッファとは完全には動作しません。ファイル操作は可能ですが、必ずしも自動的にバッファが更新されるとは限りません。g でバッファをリバートすると、挿入されたすべてのサブディレクトリが削除され、すべてのフラグとマークも消去されます。