Espressione regolare
Per usare un regex, potresti anche provare find-lisp-find-dired
. Questo comando appartiene alla lib standard. find-lisp , che è interamente scritto in elisp, cioè non è necessario aver installato un find
programma esterno
.
Ad esempio, quanto segue mostra tutti i file con estensione '.el' nella directory ~ / lisp:
M-x find-lisp-find-dired RET ~/lisp RET \.el\' RET
(La partita onora case-fold-search
).
Carta jolly
Vale la pena notare che dalla prossima versione di Emacs (v26.1) Dired supporta le wilcard nella parte della directory dell'argomento nome file. Ciò significa che i seguenti lavori:
C-x d ~/soft/*/*.c RET
(La corrispondenza fa distinzione tra maiuscole e minuscole).
Questo comando mostra in un buffer Dired tutti i file con estensione '.c', 2 livelli di profondità in '~ / soft' . Ciò significa che verranno elencati tutti i file come
"~ / soft / foo / bar.c" , ma non file come "~ / soft / qux.c"
né "~ / soft / foo / baz / qux.c" .
Lo stesso ma senza distinzione tra maiuscole e minuscole:
C-x d ~/soft/*/*.[cC] RET
indennità
Se stai eseguendo Dired con un 'ls' implementato in elisp, 'ls-lisp' o 'eshell-ls', puoi elencare ricorsivamente tutti i file che corrispondono a un carattere jolly con la seguente sintassi:
C-x d ~/soft/**/*.c RET
Notare la '**'. In questo caso vengono visualizzati tutti i file in '~ / soft' corrispondenti al carattere jolly, anche '~ / soft / qux.c' .
Tuttavia, quando si utilizza insert-directory-program
l'espansione jolly viene eseguita dalla shell di sistema; ciò significa che questa sintassi '**' ricorsiva funziona solo se è supportata dalla shell. Ad esempio zsh lo supporta, ma bash no. Con shell diverse da zsh il comando precedente farà lo stesso di:
C-x d ~/soft/*/*.c RET