Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

In Emacs how can I search a directory and all subdirectories for a filename?

share|improve this question

4 Answers 4

You can open: */foo.bar for finding any files named foo.bar in a direct subdirectory of the current one, or **/foo.barfor finding any files named foo.bar recursively in subdirectories of the current one.

share|improve this answer
This doesn't work for me -- I suspect it requires some library that isn't loaded by default. –  offby1 Oct 5 '12 at 20:27
It work here with stock Emacs (with emacs -q --no-site-file), I do know that this was not available with older Emacs, and it conflict with ido. –  Rémi Oct 6 '12 at 11:30
You're right; it works for me, too. I never noticed that! –  offby1 Oct 6 '12 at 17:44

In dired, you can list all the subdirectories of the visited directory by moving to the first line and pressing C-u l and adding the R switch. You can then search the file name in the buffer, or mark files based on a regexp with % m.

On Linux, or Windows with Cygwin utilities, or other unix-like system with GNU find, a quick-and-dirty hack is M-x grep-find, and edit the command line to contain just the find part with a suitable format:

find -type f -name '*.foo' -printf '%p:0:\n'

On any system that has unix tools available, you can run the find command with M-! find. In the output buffer, you can use M-x ffap to visit the chosen file. You can also set up dired-x so that C-u C-x C-f can be used instead of M-x ffap.

share|improve this answer

In emacs 23, try M-x find-dired

share|improve this answer

You can use M-x find-name-dired. It will ask for a directory and a wildcard pattern, so you can enter something like *thing* and have all files with "thing" in the name listed in a dired buffer.

More here: http://emacswiki.org/emacs/RecursiveGrep (along with a snippet that lets you skip writing out the stars too).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.