Wie kann ich in Emacs ein Verzeichnis und alle Unterverzeichnisse nach einem Dateinamen durchsuchen?
In dired können Sie alle Unterverzeichnisse des besuchten Verzeichnisses auflisten, indem Sie in die erste Zeile wechselnC-u l
und den R
Schalter drücken und hinzufügen . Sie können dann den Dateinamen im Puffer suchen oder Dateien basierend auf einem regulären Ausdruck mit markieren % m
.
Unter Linux oder Windows mit Cygwin-Dienstprogrammen oder einem anderen Unix-ähnlichen System mit GNU find ist ein schneller und schmutziger Hack. M-x grep-find
Bearbeiten Sie die Befehlszeile so, dass sie nur den find
Teil mit einem geeigneten Format enthält:
find -type f -name '*.foo' -printf '%p:0:\n'
Auf jedem System, auf dem Unix-Tools verfügbar sind, können Sie den find
Befehl mit ausführen M-! find
. Im Ausgabepuffer können Sie M-x ffap
die ausgewählte Datei aufrufen. Sie können dired-x auch so einrichten, dass C-u C-x C-f
es anstelle von verwendet werden kann M-x ffap
.
Sie können öffnen: */foo.bar
zum Suchen von Dateien mit dem Namen foo.bar in einem direkten Unterverzeichnis des aktuellen oder **/foo.bar
zum rekursiven Suchen von Dateien mit dem Namen foo.bar in Unterverzeichnissen des aktuellen.
Versuchen Sie es in Emacs 23
M-x find-dired
quelle
Sie können verwenden
M-x find-name-dired
. Es werden Sie nach einem Verzeichnis und einem Platzhaltermuster gefragt, sodass Sie so etwas wie eingeben*thing*
und alle Dateien mit "thing" in dem Namen in einem Verzeichnispuffer auflisten können.Mehr hier: http://emacswiki.org/emacs/RecursiveGrep (zusammen mit einem Snippet, mit dem Sie das Schreiben der Sterne überspringen können).
quelle