So finden Sie alle Dateinamen mit der angegebenen Erweiterung


8

Ich muss alle .pemDateien auf meinem System finden. Würde das Folgende das tun?

sudo find / -type f -name *.pem

Wenn nicht, wie würde ich einen Suchbefehl schreiben, um jede Datei dieser Art zu finden?

Antworten:


18

Sie sind auf dem richtigen Weg - Sie müssen nur das Muster zitieren, damit es von findund nicht von Ihrer Shell interpretiert wird :

sudo find / -type f -name '*.pem'

Du warst schneller als ich. :)
EEAA

2
/ Ich holster die Pistolen ;-)
mgorven

3

Die Verwendung find /ist normalerweise sehr langsam. Die Verwendung locateist viel schneller, aber etwas ungenau, da sie nichts Komplexeres als den Teilstring-Abgleich unterstützt. Ein aufgerufenes Verzeichnis .pembrokewird gefunden und von find zusammen mit jeder darin enthaltenen Datei zurückgegeben.

Eine Kombination von locateund grephat jedoch Geschwindigkeit und Präzision. Praktischerweise erfordert es auch nicht sudo.

locate .pem | grep "\.pem$"

Der Nachteil? Die verwendete Datenbank locatewird normalerweise nur einmal pro Tag aktualisiert, sodass die letzten Änderungen (Ergänzungen, Löschungen, Namensänderungen usw.) nicht gefunden werden.


Lokalisieren ist viel schneller als Finden
B14D3

1

Fast!

sudo find / -type f -name \*.pem

oder

sudo find / -type f -name "*.pem"

Andernfalls interpretiert die Shell das * anstelle von find.


\ * hängt ein bisschen von der Shell und dem Geschmack von Unix ab. (Funktioniert jedoch auf den meisten Systemen wie vorgesehen.) Die angegebene Version funktioniert meines Wissens immer.
Tonny

Das ist lustig. Musste \\ * schreiben, um der Flucht zu entkommen. In diesem Fall sehr passend.
Tonny

1

... oder wenn mlocate auf Ihrem Computer ausgeführt wird und Sie nicht die aktuellsten Daten benötigen, verwenden Sie den Befehl find

Suchen Sie * .pam

Es ist schneller, weil es Dateien in einer zuvor erstellten Datenbank findet. nicht auf dem ganzen System.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.