【Emacs】Diredでファイルを検索する

Diredでファイルを検索する方法はいくつかあります。用途によって使い分けるのがよいです。

目次

1. Dired内でファイル名を検索する

最も簡単なのは、

C-s

です。

Diredで C-s を押して検索文字列を入力すると、現在のDired一覧からファイル名をインクリメンタル検索できます。


2. ファイル名を検索して一覧を絞り込む

Diredでファイル名を正規表現で検索したいなら、

M-x dired-mark-files-regexp

が使えます。

例えば、

.*\.org$

と入力すると、.org ファイルをマークできます。

その後、

t

でマークしたファイルだけを表示することもできます。

ただし、検索結果だけを一覧として表示したい場合には、find-name-dired のほうが適しています。


3. サブディレクトリも含めてファイル名を検索する

例えば、

~/git_copy/

以下から

*.org

を探したい場合は、

M-x find-name-dired

を使います。

すると、

Find name: *.org

のように入力できます。

例えば、

~/git_copy/

*.org

を指定すると、サブディレクトリも含めて .org ファイルを探し、結果をDiredバッファとして表示します。


4. find を使って検索する

より細かい条件で検索したい場合は、

M-x find-dired

です。

例えば、

find . -type f -name "*.org"

のような find コマンドを実行して、その結果をDiredとして扱えます。


5. ファイルの「内容」を検索する場合

これはファイル名検索とは別です。

例えば、

org-roam という文字列を含むファイルを探したい

なら、Diredよりも grep / rgrep が適しています。

Emacsでは、

M-x rgrep

を使えます。

例えば、

Search for: org-roam
File pattern: *.org
Base directory: ~/git_copy/

とすれば、ディレクトリ以下の .org ファイルの内容を検索できます。


まとめ

目的操作
Dired一覧からファイル名を探すC-s
正規表現に一致するファイルをマークM-x dired-mark-files-regexp
サブディレクトリも含めてファイル名検索M-x find-name-dired
find コマンドで高度な検索M-x find-dired
ファイルの中身を検索M-x rgrep

今のDired設定なら

普段の操作としては、

C-s

現在表示しているDiredの一覧から探す用途に使い、

M-x find-name-dired

ディレクトリ以下を再帰的に探す用途に使う、という使い分けが分かりやすいです。

よかったらシェアしてね!
  • URLをコピーしました!
目次