GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Suchbefehl mit praktischen Beispielen

Der find-Befehl ist ein leistungsstarkes Suchprogramm, das verwendet wird, um Dateien in Linux- und Unix-ähnlichen Betriebssystemen zu finden. Es kann Dateien und Verzeichnisse basierend auf verschiedenen Kriterien wie Name, Erweiterung, Typ, Änderungs- und Erstellungsdatum, Berechtigungen, Größe, Eigentümer finden.

Find kann auch eine befehlsbasierte Aktion ausführen, z. B. Dateien suchen und Löschen, Zählen usw. ausführen.

Dieses Tutorial konzentriert sich darauf, die Verwendung des Find-Befehls zu erklären und Sie durch Beispiele zu führen.

Syntax:

Die grundlegende Syntax von find Befehlsverwendung ist wie folgt:

find <directory-to-search> [OPTIONS] <find name,file,extension>

Das -H und -L Optionen werden verwendet, um symbolische Links während der Suche zu verwalten, -P (symbolischen Links nicht folgen) und -L (symbolischen Links folgen).

1. Suchen Sie eine Datei anhand des Namens

Um eine Datei anhand ihres Namens zu finden verwenden Sie den find-Befehl mit -name Option.

Angenommen, Sie möchten nach der Datei mit dem Namen „nginx.yaml“ im Dokumentenverzeichnis suchen, können Sie den folgenden Befehl ausführen:

$ find /Documents -name nginx.yaml

Dadurch wird die Datei mit dem Namen „nginx.yaml“ in Documents/ und allen Unterverzeichnissen gefunden:

Um außerdem nach der Datei „nginx.yaml“ im aktuellen Verzeichnis und allen Unterverzeichnissen zu suchen, führen Sie Folgendes aus:

$ find -name nginx.yaml

Der Punkt (.) nach dem Suchbefehl gibt an, dass die Suche im aktuellen Verzeichnis beginnen soll:

$ find . -name nginx.yaml

2. Dateien nach Erweiterung suchen

Wenn Sie nach allen Dateien nach Erweiterung suchen möchten , können Sie den find-Befehl mit -name verwenden Option gefolgt von *.

Beispielsweise können Sie im Home-Verzeichnis nach allen Dateien mit der Erweiterung „.png“ suchen, indem Sie den folgenden Befehl ausführen:

$ find $HOME -name *.png

3. Nur Verzeichnisse finden

Wenn Sie nur Verzeichnisse suchen möchten , können Sie den find-Befehl mit -type d ausführen Option.

Angenommen, Sie möchten nach allen Verzeichnissen im Ordner Documents/ suchen, lassen Sie uns Folgendes ausführen:

$ find /Documents -type d

4. Nur Dateien suchen

Es gibt viele verschiedene Arten von Dateien in Linux, wie z. B.:Verzeichnisse, symbolische Links, Sockets, reguläre Dateien usw. Wenn Sie nur nach regulären Dateien suchen möchten , können Sie den Befehl find mit der Option '-type f' ausführen.

Angenommen, Sie finden nur Dateien im aktuellen Verzeichnis, führen wir beispielsweise Folgendes aus:

$ find . -type f

5. Suchen und löschen

In manchen Situationen möchten Sie finden und löschen Dateien/Verzeichnisse, die nicht mehr benötigt werden, können Sie den Suchbefehl mit der Option '-delete' ausführen.

Wenn Sie beispielsweise alle Bilder mit der Erweiterung *.png im Ordner Documents/ finden und diese entfernen:

$ find /Documents -name *.png -delete

6. Finden Sie Dateien mit bestimmten Berechtigungen

Wenn Sie nach allen Dateien suchen möchten, die bestimmte Berechtigungen haben , können Sie den Linux-Befehl find mit der Option '-perm' verwenden.

Um beispielsweise Dateien mit der Berechtigung „755“ zu finden, führen wir Folgendes aus:

$ find . -type f -perm 775 -exec ls -l {} \;

7. Finden Sie Dateien und Verzeichnisse nach Datum/Uhrzeit

Mit dem Linux-Befehl find können Sie anhand des Datums-/Zeitstempels nach Dateien und Verzeichnissen suchen.

Sie können den Befehl find mit der Option '-mtime -N' verwenden, um Dateien zu finden, die zuletzt vor 'N' Tagen geändert wurden. Um beispielsweise nach allen Dateien zu suchen, die in den letzten 2 Tagen im aktuellen Verzeichnis geändert wurden, führen wir Folgendes aus:

$ find . -type f -mtime -2 -exec ls -l {} \;

Eine andere Möglichkeit, den Befehl find zum Suchen nach Dateien/Verzeichnissen nach Datum/Uhrzeit zu verwenden, ist die Verwendung der Option „-newerXY“. Wo X und Y sein können:

a - die Zugriffszeit der Referenzdatei

B - die Geburtszeit der Referenzdatei

c - die Änderungszeit des Inode-Status der Referenzdatei

m - die Änderungszeit der Referenzdatei

t - refer wird direkt als Zeit interpretiert

Um beispielsweise nach allen Dateien zu suchen, die am 4. Juli 2020 im aktuellen Verzeichnis geändert wurden, führen wir Folgendes aus:

$ find . -type f -newermt 2020-07-04 -ls

8. Finden Sie Dateien und Verzeichnisse nach Größe

Mit dem Linux-Suchbefehl können Sie nach Dateien/Verzeichnissen nach Größe suchen, indem Sie den Befehl mit der Option „-size“ ausführen.

Angenommen, Sie möchten Dateien finden, die größer als 1 GB sind, können Sie den folgenden Befehl ausführen:

$ find . -type f -size +1G

Einige praktische Beispiele

01) Finde leere Dateien/Verzeichnisse

Diese Ausgabe listet alle leeren Dateien und Ordner im aktuellen Verzeichnis und den Unterverzeichnissen auf:

$ find . -empty -ls

02) Finden Sie alle .jpg-Dateien

$ find . -name *.jpg

03) Finden Sie alle Verzeichnisse mit 644-Berechtigung

Die Ausgabe zeigt Ihnen alle Ordner im aktuellen Verzeichnis oder Unterverzeichnis, die die 644-Berechtigung haben:

$ find . -type d -perm 644 -ls

04) Finden Sie Dateien, die einem bestimmten Benutzer gehören

Wenn Sie im aktuellen Verzeichnis nach allen Dateien suchen möchten, die dem Benutzer "cas" gehören, können Sie dies wie folgt tun:

$ find . -user cas -ls

05) Dateien nach Inode-Nummer suchen

Um eine Datei anhand ihrer Inode-Nummer zu suchen, können Sie find mit -inum verwenden Möglichkeit. Zum Beispiel:

$ find -inum 534937

06) Anzahl der Dateien zählen

$ find -type f -exec basename {} \; | wc -l

07) Anzahl der Verzeichnisse zählen

$ find -type d -exec basename {} \; | wc -l

08) Suche nach Dateien mit einer bestimmten Tiefe

Angenommen, Sie möchten nach der Datei „Dockerfile“ im HOME-Ordner und seinen Unterverzeichnissen und nicht in den Unterverzeichnissen der nächsten Ebene suchen, müssen Sie die Option „-maxdepth“ wie folgt auf 2 setzen:

$ find $HOME -maxdepth 2 -name Dockerfile

Schlussfolgerung

Ein weiteres leistungsstarkes Tool ist der fd-Befehl, der eine Alternative zum find-Befehl darstellt.

In diesem Tutorial haben wir gelernt, wie man den Linux-Befehl find verwendet, um nach Dateien und Verzeichnissen zu suchen. Danke fürs Lesen und bitte hinterlassen Sie Ihren Vorschlag im Kommentarbereich unten.


Linux
  1. JQ-Befehl in Linux mit Beispielen

  2. Verwenden des Linux-Suchbefehls – Verwendung mit Beispielen

  3. Praktische Beispiele für den rsync-Befehl unter Linux

  4. Praktische Beispiele für den Unzip-Befehl unter Linux

  5. Linux-rsync-Befehl mit praktischen Beispielen

12 praktische Beispiele für In Command unter Linux

Wait-Befehl in Linux mit praktischen Beispielen erklärt

Tutorial für Linux-Suchbefehle (mit Beispielen)

Mama, ich habe es gefunden! — 15 praktische Beispiele für Linux-Suchbefehle

lsof-Befehl unter Linux mit Beispielen

Linux-Comm-Befehl mit Beispielen