Website-Suche

Verwenden Sie die Optionen maxdepth und mindepth mit dem Linux-Befehl find


In diesem Tutorial wollen wir lernen, wie man die Optionen maxdepth und mindepth mit dem Befehl find verwendet, um Dateien und Verzeichnisse innerhalb eines angegebenen Bereichs bzw. Tiefenstufen in Linux mit Beispielen zu suchen.

Am Ende bieten wir auch eine einfache Analogie, um Anfängern das Verständnis der Optionen mindepth und maxdepth des Linux-Befehls find zu erleichtern.

Was sind die Optionen maxdepth und mindepth im Befehl find?

Für diejenigen, die es noch nicht wissen, gibt die Option maxdepth im Befehl find die maximale Tiefe (Anzahl der Ebenen) an, in die die Verzeichnisstruktur durchsucht werden soll. Sie begrenzt die Suche auf eine bestimmte Tiefenebene oder weniger.

Die mindepth-Option gibt die minimale Tiefe (Anzahl der Ebenen) an, auf der die Suche beginnen soll, Tests oder Aktionen anzuwenden. Sie stellt sicher, dass die Suche keine Dateien oder Verzeichnisse auf flacheren Ebenen einschließt.

Die Optionen maxdepth und mindepth ermöglichen es Ihnen, die Tiefe der Verzeichnisdurchsuchung zu begrenzen, was nützlich sein kann, wenn Sie sich auf bestimmte Ebenen des Verzeichnisbaums konzentrieren möchten.

Lassen Sie uns einige Beispiele ansehen, wie diese beiden Optionen verwendet werden können, um effektiv nach Dateien und Verzeichnissen über die Befehlszeile in einem Linux-System zu suchen.

Suchen nach Dateien und Verzeichnissen innerhalb eines bestimmten Bereichs mit den Optionen maxdepth und mindepth des find-Befehls

Zu Demonstrationszwecken werden wir das folgende Verzeichnis verwenden.

$ tree MyFiles/
MyFiles/
├── Dir1
│   ├── Dir2
│   │   ├── Dir3
│   │   │   └── file3
│   │   └── file2
│   ├── file1
│   └── file1.1
├── myfile1
├── myfile2
└── myfile3

3 directories, 7 files

Wie Sie sehen können, gibt es 3 Unterverzeichnisse, nämlich dir1, dir2 und dir3, und es gibt 7 Dateien, nämlich myfile1, myfile2, myfile3, file1, file1.1, file2 und file3 unter einem Hauptverzeichnis namens MyFiles.

Angesichts der bereitgestellten Verzeichnisstruktur unter MyFiles/ wollen wir untersuchen, wie die Optionen maxdepth und mindepth des find-Befehls genutzt werden können, um unsere Suche nach Dateien oder Verzeichnissen innerhalb bestimmter Tiefen zu steuern.

Verwendung von maxdepth

Die maxdepth-Option begrenzt die Suche auf eine bestimmte Anzahl von Ebenen unterhalb des Startpunkts des Befehls.

Beispiel 1:

Liste alles innerhalb von MyFiles/ bis zu 1 Ebene tief auf (einschließlich Dateien und Verzeichnisse direkt unter MyFiles/, aber nicht weiter darunter).

$ find MyFiles/ -maxdepth 1

Dies würde Dir1, myfile1, myfile2 und myfile3 auflisten, aber es würde Dir2, file1, file1.1 oder irgendetwas unterhalb von Dir2 nicht auflisten.

Beispiel 2:

Liste alles bis zu 2 Ebenen tief auf.

$ find MyFiles/ -maxdepth 2

Dies würde Dir1, myfile1, myfile2, myfile3 umfassen, und auch Dir2, file1 und file1.1, aber nicht Dir3 oder file2 und file3.

Verwendung von mindepth

Die mindepth-Option gibt die minimale Tiefe an, bevor find beginnt, Ergebnisse zurückzugeben.

Beispiel 3:

Liste alles in MyFiles/ auf, beginnend ab 2 Ebenen tief.

$ find MyFiles/ -mindepth 2

Dieser Befehl überspringt die direkten Kinder von MyFiles/ (wie Dir1, myfile1, myfile2, myfile3) und listet alles von Dir2, file1, file1.1 und darunter auf.

Beispiel 4:

Finden Sie Dateien, beginnend ab 3 Ebenen tief.

$ find MyFiles/ -mindepth 3 -type f

Dies würde file2 und file3 auflisten und dabei die Dateien und Verzeichnisse überspringen, die weniger als 3 Ebenen tief sind.

Kombinieren von maxdepth und mindepth

Sie können diese Optionen kombinieren, um Ihre Suchentiefe fein abzustimmen.

Beispiel 5:

Liste Dateien auf, die genau 3 Ebenen tief sind.

$ find MyFiles/ -mindepth 3 -maxdepth 3 -type f

Dieser Befehl zielt auf Dateien ab, die genau 3 Ebenen tief sind, wie file2 unter Dir2. Beachten Sie, dass file3 tatsächlich 4 Ebenen tief ist und nicht eingeschlossen würde.

Nach einer bestimmten Datei oder einem Verzeichnis suchen

In unseren vorherigen Beispielen haben wir untersucht, wie man nach allen Dateien oder Verzeichnissen sucht. In diesem Abschnitt konzentrieren wir uns darauf, wie man eine einzelne Datei oder einen Ordner durchsucht.

Finden Sie die Datei "file1" im Stammverzeichnis und eine Ebene tiefer (d.h. Stammverzeichnis und ein Unterverzeichnis):

$ find /path/to/directory/ -maxdepth 2 -name file1

Ersetzen Sie /path/to/directory/ durch Ihren eigenen Verzeichnispfad.

Finden Sie die Datei "file2" im Stammverzeichnis und zwei Ebenen tiefer (d.h. Stammverzeichnis, Unterverzeichnisebene 2 und Unterverzeichnisebene 3):

$ find /path/to/directory/ -maxdepth 3 -name file2

Finde Dateien mit dem Namen "file" zwischen Unterverzeichnisebene 2 und 4 (d.h. beginnend ab Unterverzeichnisebene 3 bis Unterverzeichnisebene 5):

$ find /path/to/directory/ -mindepth 3 -maxdepth 5 -name file

Finde alle Dateien mit dem Namen "file3" unter allen Unterverzeichnissen, beginnend vom Stammverzeichnis:

$ find /path/to/directory/ -name file3

Zögern Sie nicht, diese Befehle an Ihren Anwendungsfall anzupassen, und erkunden Sie andere Optionen, die der vielseitige find-Befehl bietet!

Verständnis der Optionen mindepth und maxdepth mit einer einfachen Analogie

Wenn Sie ein Neuling sind, können die Verwendung der Optionen maxdepth und mindepth etwas verwirrend sein. Hier ist eine einfache Möglichkeit, sich diese Optionen zu merken:

Denken Sie an Tiefe als Distanz:

  • mindepth: Das ist wie das Festlegen einer Mindesttiefe, bevor man mit dem Zählen oder Suchen beginnt. Es ist so, als würde man sagen: "Beginne erst mit dem Zählen oder Suchen, nachdem du mindestens so tief gegangen bist."
  • maxdepth: Dies ist wie das Festlegen einer maximalen Entfernung, die Sie bereit sind zu gehen. Es ist wie zu sagen: „Hören Sie auf zu zählen oder zu suchen, sobald Sie so tief gegangen sind.“

Verwendung einer Analogie:

Stellen Sie sich vor, Sie erkunden einen Wald mit mehreren Schichten von Wegen und Pfaden. Jede Schicht stellt eine andere Tiefenebene dar:

  • mindepth: Bevor Sie mit dem Zählen oder Erkunden beginnen, entscheiden Sie sich für die Mindesttiefe, ab der Sie starten möchten. Zum Beispiel könnten Sie sagen: „Ich werde nur zählen oder etwas erkunden, nachdem ich mindestens 2 Schichten tief in den Wald gegangen bin.“
  • maxdepth: Sie bestimmen auch die maximale Tiefe, die Sie bereit sind zu erreichen. Zum Beispiel könnten Sie sagen: „Ich werde nichts zählen oder erkunden, das mehr als 3 Schichten tief in den Wald geht.“

Zusammenfügen:

  • mindepth 2: Das bedeutet, dass Sie das Zählen oder Suchen ab dem Punkt beginnen, an dem Sie sich mindestens 2 Schichten tief im Wald befinden.
  • maxdepth 3: Das bedeutet, dass Sie aufhören zu zählen oder zu suchen, sobald Sie 3 Ebenen tief in den Wald vorgedrungen sind.

Visuelle Darstellung:

Forest (Root)
├── Layer 1
│   ├── Layer 2
│   │   ├── Layer 3
│   │   │   ├── Layer 4
│   │   │   └── Layer 4
│   │   └── Layer 3
│   ├── Layer 2
│   └── Layer 2
└── Layer 1

In diesem Wald-Analogon können Sie Ihre Erkundung anpassen, indem Sie mindepth festlegen, um zu bestimmen, wo Sie beginnen, und maxdepth, um zu bestimmen, wie tief Sie gehen möchten.

Ich hoffe, diese Analogie hilft, es klarer zu machen!

Wenden wir dies nun auf unser Verzeichnisbeispiel an:

Wenn Sie Dateien finden möchten, die vom Stammverzeichnis ausgehen und nur zwei Ebenen nach unten gehen, verwenden Sie:

$ find /path/to/directory/ -maxdepth 2 -name <filename>

Wenn Sie Dateien ab Ebene 3 bis Ebene 5 suchen möchten, verwenden Sie:

$ find /path/to/directory/ -mindepth 3 -maxdepth 5 -name <filename>

Denken Sie daran, maxdepth begrenzt, wie tief Sie gehen, und mindepth legt Ihren Startpunkt fest.

Viel Spaß beim Verzeichnis Erkunden!

Fazit

In diesem Tutorial haben wir gelernt, wie man mit den Optionen mindepth und maxdepth des Linux-Befehls find nach Dateien und Verzeichnissen in einem angegebenen Bereich sucht, zusammen mit Beispielen.

Anhand dieser Beispiele können Sie sehen, wie die Optionen maxdepth und mindepth eine präzise Kontrolle über die Tiefe Ihrer Suchvorgänge im Dateisystem ermöglichen und es Ihnen erlauben, bestimmte Bereiche Ihrer Verzeichnisstruktur effizient anzusteuern.

Verwandte Lektüre:

  • Wie man Dateien und Verzeichnisse in Linux zählt
  • So zeigen Sie die Verzeichnisbaumstruktur in Linux an
  • Wie man die älteste Datei in einem Verzeichnisbaum unter Linux findet
  • Bestimmte Dateitypen kopieren und dabei die Verzeichnisstruktur in Linux beibehalten