Регулярное выражение
Чтобы использовать регулярные выражения, вы также можете попробовать find-lisp-find-dired
. Эта команда относится к стандартному lib. find-lisp , который полностью написан на elisp, т.е. вам не нужно устанавливать внешнюю
find
программу.
Например, ниже показаны все файлы с расширением '.el' в каталоге ~ / lisp:
M-x find-lisp-find-dired RET ~/lisp RET \.el\' RET
(Матч наград case-fold-search
).
Wildcard
Стоит отметить, что со следующего выпуска Emacs (v26.1) Dired поддерживает wilcards в каталожной части аргумента имени файла. Это означает, что следующие работы:
C-x d ~/soft/*/*.c RET
(Совпадение чувствительно к регистру).
Эта команда показывает в буфере Dired все файлы с расширением «.c», 2 уровня глубины в «~ / soft» . Это означает, что будут перечислены все файлы, такие как
«~ / soft / foo / bar.c» , но не такие файлы, как «~ / soft / qux.c»
или «~ / soft / foo / baz / qux.c» .
То же самое, но без учета регистра:
C-x d ~/soft/*/*.[cC] RET
бонус
Если вы используете Dired с 'ls', реализованным в elisp, 'ls-lisp' или 'eshell-ls', то вы можете рекурсивно перечислить все файлы, соответствующие шаблону, со следующим синтаксисом:
C-x d ~/soft/**/*.c RET
Обратите внимание '**'. В этом случае отображаются все файлы в «~ / soft», соответствующие шаблону, даже «~ / soft / qux.c» .
Однако при использовании insert-directory-program
подстановочного знака расширение производится системной оболочкой; это означает, что этот рекурсивный синтаксис '**' просто работает, если он поддерживается вашей оболочкой. Например, zsh поддерживает это, а bash - нет. С оболочками, отличными от zsh, предыдущая команда будет делать то же самое, что и:
C-x d ~/soft/*/*.c RET