Der Linux-Befehl find ist praktisch, wenn Sie direkt von der Befehlszeile aus nach Dateien suchen. Dem Find-Befehl werden Suchkriterien wie Berechtigungen, Besitz, Änderung, Größe, Uhrzeit und Datum unter anderem gegeben, um die betreffende Datei oder das betreffende Verzeichnis zu finden.
Der Find-Befehl ist standardmäßig in allen Linux-Distributionen verfügbar, daher müssen keine speziellen Pakete installiert werden, um ihn zu verwenden. Aufgrund seiner Bedeutung ist der Befehl find ein wesentlicher Befehl, den Sie lernen sollten, wenn Sie mehr über die Befehlszeilenavigation in einer beliebigen Linux-Distribution wissen möchten.
Wir werden einige der find-Befehlsbeispiele hervorheben und die verschiedenen Optionen erklären, die Sie verwenden können.
Syntax
$ find location comparison-criteria search term
Dateien im aktuellen Verzeichnis auflisten
Führen Sie den folgenden Befehl aus, um alle Dateien in einem Verzeichnis einschließlich Dateien in Ordnern aufzulisten.
$ find .
Beispielausgabe
Dateien in einem bestimmten Verzeichnis suchen
Wenn Sie alle Dateien in einem bestimmten Verzeichnis durchsuchen möchten, verwenden Sie den Find-Befehl wie folgt
$ find directory_name
Um beispielsweise nach allen Dateien in /boot zu suchen, führen Sie den Befehl
aus$ find /boot
Beispielausgabe
Suchen von Dateien anhand des Dateinamens innerhalb eines bestimmten Verzeichnisses
Wenn Sie die Suchkriterien anhand des Dateinamens in einem Verzeichnis angeben möchten, lautet die Syntax wie folgt
$ find directory_name -name "file_name"
Um beispielsweise nach Apache2-Dateien im /etc-Verzeichnis zu suchen, führen Sie
aus$ find /etc -name "apache2"
Ausgabe
Alle Dateien mit einer bestimmten Dateierweiterung rekursiv finden
Wenn Sie in einem bestimmten Verzeichnis nach bestimmten Dateien mit einer bestimmten Erweiterung suchen möchten, lautet die Syntax wie folgt
$ find directory_name -name "*.extension"
Um beispielsweise nach allen Konfigurationsdateien (.conf) im Verzeichnis /etc zu suchen, führen Sie
aus$ find /etc -name "*.conf"
Beispielausgabe
Einschränkende Suchtiefe
Sie können die Tiefe Ihrer Dateisuche in Verzeichnissen einschränken. Wenn Sie beispielsweise Ihre Dateisuche auf die erste Ebene des Verzeichnisses beschränken möchten, lautet die Syntax
$ find directory_name -maxdepth 1 -name "*.conf"
Wenn Sie also die Dateisuche auf das Verzeichnis der ersten Ebene in /etc beschränken möchten für Dateien mit .conf
Erweiterung ausführen:
$ find /etc -maxdepth 1 -name "*.conf"
Beispielausgabe
Wie in der obigen Ausgabe zu sehen ist, ist die Dateisuche auf /etc beschränkt Verzeichnisebene. Wenn Sie eine intensivere Suche durchführen und tiefer in andere Verzeichnisse innerhalb der Datei /etc gehen möchten Verzeichnis, erhöhen Sie die MaxTiefe Wert.
Zum Beispiel, um nach Dateien mit .conf zu suchen Erweiterung bis zum 3. Verzeichnislauf
$ find /etc -maxdepth 3 -name "*.conf"
Beispielausgabe
Wie aus der obigen Ausgabe ersichtlich, geht die Suche bis zum 2. und 3. Verzeichnis.
Suchergebnisse umkehren
Sie können auch mit dem Befehl find nach Dateien suchen, die bestimmte Kriterien nicht erfüllen. Dieser Modus ist hilfreich, wenn Sie bekannte Dateien aus dem Suchmuster entfernen möchten.
Verwenden Sie dazu den -not -name
Attribut wie gezeigt
$ find /etc -maxdepth 1 -not -name "*.conf"
Beispielausgabe
Die obige Ausgabe druckt alle Dateien, die keine .conf Dateierweiterung.
Suchen mit OR-Operator verwenden
Sie können die Suchergebnisse mit der Suche kombinieren, indem Sie den OR-Operator verwenden, der durch -o
symbolisiert wird Flag, das im Beispiel unten gezeigt wird
$ find /etc -maxdepth 3 -name "cron" -o -name "ssh"
Beispielausgabe
Der obige Befehl sucht nach Dateien mit dem Namen ssh ODER cron im
Nur nach Dateien oder Verzeichnissen suchen
Wenn Sie nur nach Dateien suchen möchten, verwenden Sie den - type f
-Attribut, wie im Beispiel unten gezeigt
$ find /etc -type f -name "ssh"
Beispielausgabe
Wenn Sie nur nach Verzeichnissen suchen möchten, verwenden Sie den - type d
-Attribut, wie im Beispiel unten gezeigt.
$ find /etc -type d -name "ssh"
Beispielausgabe
Nach Dateien suchen, die einem bestimmten Benutzer gehören
Um nach Dateien zu suchen, die einem bestimmten Benutzer in einem bestimmten Verzeichnis gehören, verwenden Sie die Syntax:
$ find /path -user username
Zum Beispiel, um Dateien zu finden, die dem Benutzer James gehören in /home
Verzeichnis führen Sie den folgenden Befehl aus
$ find /home -user james
Beispielausgabe
Suche nach Dateien mit bestimmten Dateiberechtigungen
Um nach Dateien mit bestimmten Dateiberechtigungen zu suchen, verwenden Sie die folgende Syntax
$ find /directory_name -type f -perm value
Zum Beispiel, um nach Dateien mit den Berechtigungen 755 in /etc zu suchen Verzeichnis, führen Sie aus:
$ find /etc -type f -perm 755
Beispielausgabe
Suche nach Dateien mit bestimmten Dateigrößen oder einem Dateibereich
Der Linux-Befehl find bietet Benutzern auch die Möglichkeit, Dateien nach ihrer Dateigröße zu suchen.
Dateien der Größe N suchen
Um beispielsweise nach Dateien zu suchen, die 10 KB groß sind, führen Sie Folgendes aus:
$ find /etc -type f -size 10k
Beispielausgabe
Um Dateien zu suchen, die größer als 10 KB sind, führen Sie
aus find /etc -type f -size +10k
Beispielausgabe
Um Dateien mit weniger als 10 KB zu suchen, führen Sie
aus find /etc -type f -size -10k
Beispielausgabe
Zusammenfassung
Das war ein kurzer Überblick über die Linux-Beispiele für find-Befehle. Wie bereits gezeigt, ist das Durchsuchen von Dateien und Verzeichnissen auf der Kommandozeile sehr einfach. Zu wissen, wie der Befehl funktioniert, ist ein wichtiges Werkzeug für alle Systemadministratoren.
Probieren Sie die obigen find-Befehlsbeispiele aus und lassen Sie uns wissen, wie es gelaufen ist.