Regulären Ausdruck
Um eine Regex zu verwenden, können Sie auch versuchen find-lisp-find-dired
. Dieser Befehl gehört zur Standardbibliothek. find-lisp , das vollständig in elisp geschrieben ist, dh Sie müssen kein externes find
Programm installiert haben
.
Im Folgenden werden beispielsweise alle Dateien mit der Erweiterung '.el' im Verzeichnis ~ / lisp angezeigt:
M-x find-lisp-find-dired RET ~/lisp RET \.el\' RET
(Das Match ehrt case-fold-search
).
Platzhalter
Es ist anzumerken, dass Dired seit der nächsten Emacs-Version (Version 26.1) Wilcards im Verzeichnis des Dateinamenarguments unterstützt. Das heißt folgendes funktioniert:
C-x d ~/soft/*/*.c RET
(Bei der Übereinstimmung wird zwischen Groß- und Kleinschreibung unterschieden).
Dieser Befehl zeigt in einem Dired-Puffer alle Dateien mit der Erweiterung '.c', 2 Tiefenstufen unter '~ / soft' an . Das heißt, alle Dateien wie
'~ / soft / foo / bar.c' werden aufgelistet, aber keine Dateien wie '~ / soft / qux.c'
oder '~ / soft / foo / baz / qux.c' .
Das gleiche, aber ohne Berücksichtigung der Groß- und Kleinschreibung:
C-x d ~/soft/*/*.[cC] RET
Bonus
Wenn Sie Dired mit einem in elisp, 'ls-lisp' oder 'eshell-ls' implementierten 'ls' ausführen, können Sie alle Dateien, die einem Platzhalter entsprechen, mit der folgenden Syntax rekursiv auflisten :
C-x d ~/soft/**/*.c RET
Beachten Sie das '**'. In diesem Fall werden alle Dateien unter '~ / soft' angezeigt, die mit dem Platzhalter übereinstimmen, auch '~ / soft / qux.c' .
Wenn Sie jedoch insert-directory-program
die Platzhaltererweiterung verwenden, wird diese von der Systemshell vorgenommen. Das heißt, diese rekursive '**' - Syntax funktioniert nur, wenn sie von Ihrer Shell unterstützt wird. Zum Beispiel unterstützt zsh es, bash jedoch nicht. Bei anderen Shells als zsh führt der vorherige Befehl Folgendes aus:
C-x d ~/soft/*/*.c RET