In diesem Beitrag werden wir uns den Linux find
ansehen Befehl und wie man Dateien mit unterschiedlichen Attributen sucht und findet.
Linux-Suchbefehl
Das Linux find
Der Befehl ist ein integriertes leistungsstarkes Tool, mit dem Sie Dateien und Verzeichnisse basierend auf einer Vielzahl von Suchkriterien finden und verwalten können.
Beispielsweise können wir Dateien anhand ihres Namens, ihrer Erweiterung, Größe, Berechtigungen usw. finden. Wir können auch den find
verwenden Befehl, nach einem bestimmten Text in einer Datei zu suchen, deren Namen wir nicht kennen.
Sehen wir uns die Verwendung von find
an Befehl mit Beispielen:
Suche nach einer Datei nach Namen
Wenn Sie den Namen einer Datei kennen, sich aber nicht an das Verzeichnis erinnern können, in dem sie sich befindet, können Sie den folgenden Befehl aus dem Stammverzeichnis verwenden:
find . -name sales.csv
Beispielausgabe:
./accounts/sales.csv
Suche nach einer bestimmten Datei in einem Verzeichnis
Wenn Sie nach bestimmten Dateien in einem Verzeichnis suchen möchten, können wir Folgendes verwenden:
find ./test -name testCases*
Beispielausgabe:
./test/testCases10.txt
./test/testCasesPassed.txt
./test/testCasesFailed.log
Im obigen Fall suchen wir nur innerhalb des „./test“-Verzeichnisses.
Dateien nach Erweiterung suchen
Um Dateien mit einer bestimmten Erweiterung zu suchen und zu finden, verwenden wir:
find . -name *.jpg
Beispielausgabe:
./test/results/failedTests.jpg
./test/project.jpg
./home/profile_pic.jpg
./tmp/cute-cats.jpg
Dateien oder Verzeichnisse mit bestimmten Namen finden
Um nur Dateien zu finden, müssen wir den -f
verwenden Möglichkeit:
find ./ -type f -name "results*"
Beispielausgabe:
./test/results_latest.log
./test/results_archive.pdf
Um nur Verzeichnisse zu finden, müssen wir den -d
verwenden Möglichkeit:
find ./ -type d -name "results*"
Beispielausgabe:
./test/results
Dateien in mehreren Verzeichnissen finden
Wenn Sie alle Dateien mit einem bestimmten Namen in mehreren Verzeichnissen suchen und auflisten möchten, können Sie die Suche entweder im Stammverzeichnis starten oder, wenn Sie die Verzeichnisse kennen, diese angeben.
Beispiel:
find ./test ./logs -name failed*.* -type f
Beispielausgabe:
./test/failed_tests.txt
./logs/failed_tests.log
Finde Dateien, die einen bestimmten Text enthalten
Manchmal möchten Sie eine Datei finden und kennen ihren Namen nicht, aber Sie wissen, dass sie einen bestimmten Text enthält.
Sie können Folgendes verwenden:
find ./test -type f -exec grep -l -i "login_scenarios" {} ;
Hier die -i
Die Option wird verwendet, um Groß- und Kleinschreibung zu ignorieren, sodass sowohl Login_Scenarios als auch Login_Scenarios gefunden werden.
Dateien nach Größe suchen
Wir können sogar Dateien in verschiedenen Größen finden. Größenoptionen sind:
c
Bytesk
KilobyteM
MegabyteG
Gigabyte
Um beispielsweise Dateien mit einer genauen Größe zu finden, verwenden wir:
find / -size 10M
Und um Dateien zu finden, die eine bestimmte Größe überschreiten, verwenden wir:
find ./test -size +2M
Oben werden alle Dateien gefunden, die größer als 2 MB im Ordner ./test sind.
Suchen und löschen Sie bestimmte Dateien
Um bestimmte Dateien zu finden und zu löschen, verwenden wir:
find . -type f -name "temp*" -exec rm {} ;
Schlussfolgerung
In diesem Artikel haben Sie gelernt, wie Sie den Linux-Befehl find verwenden, um anhand von Name, Erweiterung, Größe und Typ nach Dateien zu suchen.