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:
- cBytes
- kKilobyte
- MMegabyte
- GGigabyte
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.