So finden Sie alle Dateien mit der gleichen Erweiterung in einem Verzeichnis

62

Ich bin Anfänger in Linux und möchte nach allen .confDateien in suchen /etc/.

Ich habe es versucht grep -r *.conf /etc, aber das Ergebnis stimmt nicht.

Was mache ich falsch?

Adrian George
quelle

Antworten:

95

Drücken Sie einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen den folgenden Befehl aus:

find . -type f -name "*.txt"

Dadurch werden alle Dateien mit der Erweiterung aufgelistet .txt.

Das .am Anfang kennzeichnet das aktuelle Verzeichnis. findsucht rekursiv in allen Verzeichnissen unter dem angegebenen Pfad. Wenn die Suche nicht im aktuellen Arbeitsverzeichnis beginnen soll, geben Sie den Pfad an. Beispiel:

find /etc -type f -name "*.conf"

Dadurch werden das /etcVerzeichnis und alle seine Unterverzeichnisse nach regulären Dateien mit der .confErweiterung durchsucht .

Mitch
quelle
1
Es klappt. Gibt es Alternativen für diesen Befehl?
Adrian George
1
Sie können einen Blick auf Locate werfen .
Mitch
@AdrianGeorge findist so weit verbreitet, so gut dokumentiert und hat so viele StackOverflow / Exchange-Posts, dass es schwieriger ist, etwas zu finden, mit dem man leichter arbeiten kann. Fast alles, was Sie tun möchten, wurde irgendwo online geschrieben.
BallpointBen
6

Ich würde persönlich verwenden find, aber Sie können auch für diese Dinge glob:

shopt -s globstar
ls /etc/{,**/}*.conf

Sie können locate verwenden und es ist schnell, aber nicht zuverlässig.

locate '/etc/**.conf'
Oli
quelle
Warum ist nicht locatezuverlässig?
Giraldi
1
@Giraldi locateverlässt sich darauf, dass die mlocate-Datenbank kürzlich aktualisiert wurde, um genau zu sein. Standardmäßig ist die Aktualisierung nur einmal am Tag geplant (obwohl Sie sie mit manuell erzwingen können updatedb).
Oli
@Oli stimmt aber nicht auf Macs, oder? Ich denke, Mac OS hält mlocate aktualisiert
d8aninja
6

grepdurchsucht den Inhalt von Dateien, nicht die Dateinamen.

So finden Sie alle .confDateien in /etc/:

find /etc -name "*.conf"
user184890
quelle