Terminalsuchdateien nach Text, den die Dateinamen enthalten

5

Angenommen, es gibt eine Datei mit dem Namen "abc_deh.xyz". Welchen Befehl benutze ich, um den Speicherort dieser Datei in einem Mac-Terminal zu finden, indem ich ausschließlich den Suchbegriff "deh" verwende? Im Grunde frage ich also, wie Sie eine Datei anhand des in ihrem Namen enthaltenen Textes suchen können. Ich muss Dateien finden, bei denen ich den ganzen Namen vergessen habe, das wäre hilfreicher.

Andy
quelle

Antworten:

7
sudo find / -type f -name "*deh*"

Wenn Sie auch nach Verzeichnissen suchen möchten, entfernen Sie den -type f. Sie können auch versuchen:     Sudo finden deh

Wenn Ihre Suchdatenbank nicht erstellt wurde (oder auf dem neuesten Stand ist), besteht die Möglichkeit, dass Sie diese Datei im Dateisystem haben, die aber noch nicht gespeichert wurde. Anstatt einen einzelnen Suchbefehl oben auszuführen, könnte das Erstellen der locate.db-Datenbank ein besserer Plan sein.

Gregg Leventhal
quelle
0

Das mdfind Mit dem Befehl können Sie alle indizierten Dateien finden, die eine bestimmte Zeichenfolge im Dateinamen enthalten.

In Ihrem Fall:

 mdfind -name deh
bmike
quelle
0

ich benutze glob-complete-word viel:

open */*deh # press \eg to complete paths

Auch hinzufügen set show-all-if-ambiguous on zu ~/.inputrc wenn du noch nicht Wenn mehrere Vervollständigungen vorhanden sind, wird das erste Drücken von gemacht \eg zeige sie alle. Wenn es nicht aktiviert ist und es mehrere übereinstimmende Pfade gibt */*deh, das *deh Teil wird gelöscht.

Wenn Sie Bash 4 verwenden, shopt -s globstar macht ** mehrere Verzeichnissebenen abgleichen.

Wenn Sie mdfind oder find verwenden und nur eine Ausgabezeile enthält, können Sie eine solche Tastenkombination verwenden, um sie einzufügen:

"\eo": "$(!!)\e\C-e"
Lri
quelle