Next: Wdired, Previous: Dired Updating, Up: Dired
find
You can select a set of files for display in a Dired buffer more
flexibly by using the find utility to choose the files.
To search for files with names matching a wildcard pattern use M-x find-name-dired. It reads arguments directory and pattern, and chooses all the files in directory or its subdirectories whose individual names match pattern.
The files thus chosen are displayed in a Dired buffer in which the ordinary Dired commands are available.
If you want to test the contents of files, rather than their names,
use M-x find-grep-dired. This command reads two minibuffer
arguments, directory and regexp; it chooses all the files in
directory or its subdirectories that contain a match for
regexp. It works by running the programs find and
grep. See also M-x grep-find, in Grep Searching.
Remember to write the regular expression for grep, not for Emacs.
(An alternative method of showing files whose contents match a given
regexp is the % g regexp command, see Marks vs Flags.)
The most general command in this series is M-x find-dired, which
lets you specify any condition that find can test. It takes two
minibuffer arguments, directory and find-args; it runs
find in directory, passing find-args to tell
find what condition to test. To use this command, you need to
know how to use find.
The format of listing produced by these commands is controlled by the
variable find-ls-option, whose default value specifies using
options ‘-ld’ for ls. If your listings are corrupted, you
may need to change the value of this variable.
M-x locate provides a similar interface to the locate
program. M-x locate-with-filter is similar, but keeps only lines
matching a given regular expression.
These buffers don't work entirely like ordinary Dired buffers. File operations work, but do not always automatically update the buffer. Reverting the buffer with g deletes all inserted subdirectories, and erases all flags and marks.