Wie kann ich in Emacs ein Verzeichnis und alle Unterverzeichnisse nach einem Dateinamen durchsuchen?

8

Wie kann ich in Emacs ein Verzeichnis und alle Unterverzeichnisse nach einem Dateinamen durchsuchen?

Yazz.com
quelle

Antworten:

3

In dired können Sie alle Unterverzeichnisse des besuchten Verzeichnisses auflisten, indem Sie in die erste Zeile wechselnC-u l und den RSchalter 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-findBearbeiten Sie die Befehlszeile so, dass sie nur den findTeil 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 findBefehl mit ausführen M-! find. Im Ausgabepuffer können Sie M-x ffapdie ausgewählte Datei aufrufen. Sie können dired-x auch so einrichten, dass C-u C-x C-fes anstelle von verwendet werden kann M-x ffap.

Gilles 'SO - hör auf böse zu sein'
quelle
1

Sie können öffnen: */foo.barzum Suchen von Dateien mit dem Namen foo.bar in einem direkten Unterverzeichnis des aktuellen oder **/foo.barzum rekursiven Suchen von Dateien mit dem Namen foo.bar in Unterverzeichnissen des aktuellen.

Rémi
quelle
Dies funktioniert bei mir nicht - ich vermute, es erfordert eine Bibliothek, die nicht standardmäßig geladen ist.
offby1
Es funktioniert hier mit Standard-Emacs (mit emacs -q --no-site-file). Ich weiß, dass dies mit älteren Emacs nicht verfügbar war, und es widerspricht ido.
Rémi
Du hast recht; es funktioniert auch bei mir. Das habe ich nie bemerkt!
offby1
1

Versuchen Sie es in Emacs 23 M-x find-dired

jwernerny
quelle
1

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).

Latanius
quelle