Ich bin auf Ubuntu und möchte alle Dateien im aktuellen Verzeichnis und in den Unterverzeichnissen finden, deren Name die Zeichenfolge "John" enthält. Ich weiß, dass grep
das mit dem Inhalt in den Dateien übereinstimmen kann, aber ich habe keine Ahnung, wie ich es mit Dateinamen verwenden soll. Jede Hilfe wäre dankbar.
107
Antworten:
Verwenden Sie den Befehl find ,
quelle
#!/bin/bash if [ -z $1 ]; then echo "Error: Specify pattern for search"; else /usr/bin/find . -type f -name "*$1*"; fi
erstellen, können Sie es einfachF search-string
als perfekte Verknüpfung ausführen[ -z "$1" ]
wäre aber etwas besser.if [ -z ]
. Ich dachte, das wäre ein Syntaxfehler, aber es funktioniert. Ich kann von nun an einen Teil meines Codes vereinfachen.Eine korrekte Antwort wurde bereits geliefert, aber damit Sie lernen, wie Sie sich selbst helfen können, dachte ich, ich würde etwas Hilfreiches auf andere Weise einwerfen. Wenn Sie in einem Wort zusammenfassen können, was Sie erreichen möchten, gibt es unter Linux eine sehr gute Hilfe.
Dazu werden alle Befehle mit Ihrem Suchbegriff in der Kurzbeschreibung aufgelistet. Es besteht normalerweise eine ziemlich gute Chance, dass Sie finden, wonach Sie suchen . ;)
Diese Ausgabe kann manchmal etwas überwältigend sein, und ich würde empfehlen, sie auf die ausführbaren Dateien und nicht auf alle verfügbaren Manpages zu beschränken:
oder, wenn Sie auch nach Befehlen suchen möchten, für die höhere Berechtigungsstufen erforderlich sind:
quelle
Der
find
Befehl dauert lange, da er echte Dateien im Dateisystem scannt.Der schnellste Weg ist die Verwendung eines
locate
Befehls, der sofort ein Ergebnis liefert:Wenn der Befehl nicht gefunden wird, müssen Sie zuerst das
mlocate
Paket installieren und denupdatedb
Befehl ausführen , um die Suchdatenbank zum ersten Mal vorzubereiten.Weitere Details finden Sie hier: https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab
quelle
Verwenden Sie ack es ist einfach. Schreib einfach
ack <string to be searched>
quelle
Dies ist eine sehr einfache Lösung mit dem
tree
Befehl in dem Verzeichnis, nach dem Sie suchen möchten.-f
Zeigt den vollständigen Dateipfad an und|
leitet die Ausgabe des Baums weitergrep
, um die Datei zu finden, die die Zeichenfolgefilename
im Namen enthält.quelle