3079 Stimmen

Wie kann ich rekursiv alle Dateien in aktuellen und Unterordnern basierend auf Wildcard-Übereinstimmung finden?

Wie kann ich basierend auf Wildcard-Übereinstimmung rekursiv alle Dateien in aktuellen und Unterordnern finden?

4365voto

tux21b Punkte 82543

Verwenden Sie find:

find . -name "foo*"

find benötigt einen Startpunkt, daher zeigt der . (Punkt) auf das aktuelle Verzeichnis.

319voto

Paul Whipp Punkte 14811

Pfeifen Sie find in grep ist oft bequemer; es gibt Ihnen die volle Kraft regulärer Ausdrücke für beliebige Wildcard-Übereinstimmungen.

Zum Beispiel, um alle Dateien mit dem nicht großschreibungssensitiven String "foo" im Dateinamen zu finden:

~$ find . -print | grep -i foo

222voto

IslandCow Punkte 3268

find findet alle Dateien, die zu einem Muster passen:

find . -name "*foo"

Wenn du jedoch ein Bild willst:

tree -P "*foo"

Ich hoffe das hilft!

113voto

kenorb Punkte 134883

fd

Falls find zu langsam ist, versuchen Sie das fd-Dienstprogramm - eine einfache und schnelle Alternative zu find, geschrieben in Rust.

Syntax:

fd MUSTER

Demo:

Homepage: https://github.com/sharkdp/fd

83voto

toddcscar Punkte 1016
find -L . -name "foo*"

In einigen Fällen habe ich den -L Parameter benötigt, um symbolische Verzeichnislinks zu verarbeiten. Symbolische Links werden standardmäßig ignoriert. In diesen Fällen war es ziemlich verwirrend, da ich in ein Unterverzeichnis wechselte und die Datei sah, die dem Muster entsprach, aber find den Dateinamen nicht zurückgab. Die symbolischen Link-Optionen für find sind -P -L -H

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X