Heim >System-Tutorial >LINUX >So finden Sie ein Verzeichnis in Linux aus der Befehlszeile

So finden Sie ein Verzeichnis in Linux aus der Befehlszeile

Lisa Kudrow
Lisa KudrowOriginal
2025-03-18 09:07:11944Durchsuche

So finden Sie ein Verzeichnis in Linux aus der Befehlszeile

Sie können keinen Ordner im Linux -System finden? Mach dir keine Sorgen! Linux bietet leistungsstarke Befehlszeilen-Tools, um fehlende Verzeichnisse zu finden. Das häufigste Tool ist der Befehl find , mit dem Sie Verzeichnisse basierend auf verschiedenen Kriterien durchsuchen können. In diesem Handbuch werden verschiedene Möglichkeiten eingeführt , um Verzeichnisse in Linux -Systemen zu finden .

Zunächst werden wir demonstrieren, wie das Verzeichnis nach Namensuche durchsucht. Wir werden dann demonstrieren, wie man die zuletzt modifizierten Verzeichnisse und die in den letzten n -Tagen modifizierten Verzeichnissen findet. Sie werden auch lernen, wie man ältere Verzeichnisse identifiziert - diese vor naggregierten n -tageliden modifizierten.

Als nächstes werden wir erklären, wie Sie mit den Optionen maxdepth und mindepth nach einem Verzeichnis innerhalb eines bestimmten Tiefenbereichs suchen. Sie lernen, wie Sie Verzeichnisse finden, die auf Berechtigungen für Verzeichnisse und Verzeichnisse basieren, die eine bestimmte Anzahl von Dateien enthalten.

Schließlich werden wir erklären, wie Sie nach leeren Verzeichnissen suchen, was sehr nützlich ist, um ungenutzte oder unnötige Teile des Dateisystems zu identifizieren.

Im gesamten Leitfaden geben wir praktische Beispiele an, mit denen Sie den Befehl find bei der Verwendung von Verzeichnissen unter Linux nutzen können.

Inhaltsverzeichnis

  • Suchen Sie das Verzeichnis im aktuellen Verzeichnis
  • Verwenden Sie -INAME, um den Fall zu ignorieren
  • Suchverzeichnisse und Dateien
  • Finden Sie das kürzlich modifizierte Verzeichnis
  • Finden Sie Verzeichnisse, die in den letzten N -Tagen modifiziert wurden
  • Ältere Verzeichnisse identifizieren
  • Suchen Sie das Verzeichnis innerhalb des angegebenen Bereichs
  • Finden Sie ein Verzeichnis basierend auf Verzeichnisberechtigungen
  • Suchen Sie Verzeichnisse mit einer bestimmten Anzahl von Dateien
  • Suche nach leerem Verzeichnis
  • Zusammenfassen

Suche nach Verzeichnisname

Wenn Sie den Namen des Verzeichnisses kennen und wo die Suche beginnt, verwenden Sie den folgenden Befehl:

 Finden/Pfad/to/such -typ d -name "Directory_Name"

Ersetzen /path/to/search durch den tatsächlichen Pfad und "directory_name" durch das Zielverzeichnis.

Beispiel:

 $ find ~/ -type d -name "Dokumente"

Dieser Befehl beginnt mit der Suche nach einem Verzeichnis mit dem Namen "Dokumente" aus dem Heimverzeichnis des Benutzers (~/).

Hier ist eine Aufschlüsselung der Befehle:

  1. find ~/ : Beginnen Sie mit der Suche aus dem Home -Verzeichnis des Benutzers (~/).
  2. -type d : Erlisten Sie find , nach Verzeichnissen (-typ D) anstelle von normalen Dateien zu suchen.
  3. -name "Documents" : Diese Option gibt find , um ein Verzeichnis mit dem Namen "Dokumente" zu finden. Zitate auf beiden Seiten von "Dokumenten" stellen sicher, dass die Suche nach genauen Namen sucht und nicht nur Verzeichnisse, die das Wort "Dokumente" enthalten.

Daher wird dieser Befehl das Heimverzeichnis des Benutzers und alle seine Unterverzeichnisse für jedes Verzeichnis "Dokumente" durchsucht. Wenn Verzeichnisse gefunden werden, wird der vollständige Pfad zu diesen Verzeichnissen gedruckt.

Suchen Sie das Verzeichnis im aktuellen Verzeichnis

Wenn Sie Ihre Suche aus dem aktuellen Verzeichnis anstelle des Home -Verzeichnisses (~/) aus starten möchten, können Sie den ~/ Teil des Befehls wie folgt einfach weglassen:

 $ find.

Hier finden Sie eine Aufschlüsselung der Funktionen für jede Option:

  1. find . .
  2. -type d : Erlisten Sie find , das Verzeichnis zu durchsuchen.
  3. -name "Documents" : Diese Option gibt find , um ein Verzeichnis mit dem Namen "Dokumente" zu finden.

In diesem Befehl wird das aktuelle Verzeichnis und alle seine Unterverzeichnisse durchsucht, ein Verzeichnis mit dem Namen "Dokumente" finden und den vollständigen Pfad zu diesen Verzeichnissen drucken.

Alternativ können Sie auch die $PWD -Variable verwenden, die das aktuelle Arbeitsverzeichnis wie folgt darstellt:

 $ find $ pwd -Typ d -name "Dokumente"

Beide Befehle erzielen das gleiche Ergebnis, beginnend mit dem aktuellen Verzeichnis.

Verwenden Sie -INAME, um den Fall zu ignorieren

Dies ist eine sehr nützliche Flagge im Befehl find .

Wir können die Option -iname anstelle von -name verwenden, um Fall -unempfindliche Suche durchzuführen.

Hier ist ein Beispiel für die Verwendung -iname anstelle von -name :

 $ find.

-iname "Documents" -Aption entspricht Verzeichnissen mit Namen wie "Dokumenten", "Dokumenten", "Dokumenten" usw. Dies ist nützlich, wenn Sie sich über den genauen Fall des Verzeichnisnamens nicht sicher sind.

Der Hauptunterschied zwischen -name und -iname ist:

  • -name führt Fallempfindlichkeitsuche durch, sodass es nur Verzeichnisse übereinstimmt, die genau den gleichen Fall sind wie das bereitgestellte Muster.
  • -iname führt Fall-unempfindliche Suche durch, sodass es unabhängig von seinem Fall mit dem Verzeichnis übereinstimmt.

Sie können auch Suchbegriffe in Wildcards wie folgt einfügen:

 $ find.

Dieser Befehl listet alle Verzeichnisse im aktuellen Verzeichnis (und in seinen Unterverzeichnissen) auf, die "Dokumente" in ihren Namen enthalten.

Die Verwendung -iname ist möglicherweise bequemer, wenn Sie den genauen Fall des von Ihnen gesuchten Verzeichnisnamens nicht kennen oder sich nicht kümmern.

Wenn ich nach etwas suche, bevorzuge ich es, die Option -iname im Befehl find zu verwenden.

Suchverzeichnisse und Dateien

Wenn Sie -type d aus dem Befehl find entfernen, werden nach Dateien und Verzeichnissen gesucht, die anderen Kriterien wie -name oder -iname -Optionen entsprechen.

Der Befehl lautet wie folgt:

 $ find.

Hier ist was, was passiert:

  1. Der Befehl find sucht das aktuelle Verzeichnis (.) Und alle seine Unterverzeichnisse für jedes Projekt (Dateien und Verzeichnisse) mit dem Namen "Dokumente" (Fallunempfindlichkeit).
  2. Es wird ein Verzeichnis mit dem Namen "Dokumente" und jeder normalen Datei "Dokumente" im Ergebnis enthalten.

Daher umfasst die Ausgabe dieses Befehls:

  • Jedes Verzeichnis mit dem Namen "Dokumente", "Dokumente", "Dokumente" usw.
  • Jede normale Datei mit dem Namen "Dokumente", "Dokumente", "Dokumente" usw.

Durch das Löschen -type d wird die Suche breiter, da sie Verzeichnisse und Dateien enthält, die dem angegebenen Namensmuster übereinstimmen.

Dies ist nützlich, wenn Sie sich nicht sicher sind, ob der von Ihnen gesuchte "Dokumente" ein Verzeichnis oder eine Datei ist und Sie alle Ereignisse finden möchten.

Wenn Sie jedoch speziell nach Verzeichnissen suchen, die als "Dokumente" bezeichnet werden, ist es besser, -type d zu behalten, um Ihre Suche einzugrenzen.

Finden Sie das kürzlich modifizierte Verzeichnis

Verwenden Sie -newermt zweimal, um Verzeichnisse aufzulisten, die in einem bestimmten Datumsbereich geändert wurden.

Um beispielsweise nach Verzeichnissen zu suchen, die zwischen dem 15. März 2024 und dem 15. April 2024 (ohne diese zwei Tage) erstellt oder geändert wurden), können Sie verwenden:

 $ find/path/to/such -type d -newerm "2024-03-15"!

Hier ist eine Aufschlüsselung der oben genannten Befehle:

  1. find /path/to/search : Teilen Sie den Befehl zum find von Suchen aus /path/to/search .
  2. -type d : Diese Option stellt sicher, dass find nur Verzeichnisse sucht, nicht normale Dateien.
  3. -newermt "2024-03-15" : Diese Option gibt an, dass find nur Verzeichnisse enthält, die aktualisiert (erstellt oder geändert) als 15. März 2024 enthalten sind.
  4. find ! -newermt "2024-04-15" !

Die Kombination dieser Optionen führt dazu, dass find -Suchverzeichnis am oder nach dem 15. März 2024 erstellt oder geändert wird, jedoch vor dem 15. April 2024.

Dies kann beispielsweise nützlich sein, wenn Sie alle in einem bestimmten Zeitraum erstellten oder geänderten Verzeichnisse finden möchten (z. B. für Sicherungen oder Prüfung).

Finden Sie Verzeichnisse, die in den letzten N -Tagen modifiziert wurden

Um Verzeichnisse zu finden, die in den letzten n Tagen geändert wurden, verwenden Sie -mtime .

Der folgende Befehl sucht nach dem in den letzten 7 Tagen im Rahmen des ~/ projects/ Verzeichnisses geänderten Verzeichnisse.

 $ find ~/ projects/ -type d -mtime -7

Hier ist, was jeder Teil des Befehls tut:

  1. find ~/Projects/ : Teilen Sie den Befehl find , mit der Suche aus dem ~/ projects/ Verzeichnis zu suchen.
  2. -type d : Diese Option stellt sicher, dass find nur Verzeichnisse sucht, nicht normale Dateien.
  3. -mtime -7 : In dieser Option soll find nur Verzeichnisse einbeziehen, die in den letzten 7 Tagen geändert wurden ("M" in "-Mtime" bedeutet "Zeit modifizieren").

Das Arbeitsprinzip -mtime -7 -Teils lautet wie folgt:

  • Das Minuszeichen (-) bedeutet "weniger als" oder "in der Vergangenheit".
  • Die Zahl 7 repräsentiert die Anzahl der Tage.

Dies ist beispielsweise sehr nützlich, wenn Sie alle neuen Verzeichnisse finden möchten, die kürzlich im ~/ projects/ Verzeichnis erstellt oder aktualisiert wurden (möglicherweise für Sicherungen oder Verfolgung).

Ältere Verzeichnisse identifizieren

Um ein Verzeichnis zu finden, das vor n Tagen modifiziert wurde (d. H. (Finden Sie ein Verzeichnis, das vor n Tagen war), verwenden Sie -mtime mit einem Pluszeichen.

Beispielsweise sucht der folgende Befehl nach dem vor 7 Tagen gemäß dem ~/ projects/ Verzeichnis geänderten Verzeichnis.

 $ find ~/ projects/ -type d -mtime 7

Mit anderen Worten, es wird in den letzten 7 Tagen nach Verzeichnissen suchen, die nicht geändert (erstellt, aktualisiert oder zugegriffen) wurden.

-mtime 7 gibt find an, nur Verzeichnisse zu enthalten, deren Änderungszeit ("m" in "-mtime") mehr als 7 Tage ist.

Daher kann dieser Befehl verwendet werden, um Verzeichnisse zu finden, die für einen bestimmten Zeitraum nicht berührt oder geändert wurden. Dies ist hilfreich, um nicht verwendete oder veraltete Verzeichnisse oder Aufgaben wie Wartung/Reinigung der Projektverzeichnisstruktur auszuführen.

Woher wissen wir, ob das Verzeichnis tatsächlich vor x Tagen geändert wurde? Sehr einfach.

Um zu überprüfen, ob das vom Befehl find gefundene Verzeichnis vor 7 Tagen geändert wurde, können Sie den Befehl stat verwenden, um die Änderungszeit für jedes Verzeichnis anzuzeigen.

 $ find ~/ projects/ -type d -mtime 7 -exec stat -c ' %n %y' {} \;

Das Folgende ist die Erklärung des obigen Befehls:

  1. find ~/Projects/ -type d -mtime 7 : Dieser Befehlsteil ist der gleiche wie zuvor. Finden Sie das Verzeichnis vor 7 Tagen.
  2. -exec stat stat ' find -exec stat -c '%n %y' {} \; -exec
  • stat -c '%n %y' : stat zeigt den Dateinamen (%n) des Verzeichnisses und die letzte modifizierte Zeit (%y) an.
  • {} : Dies ist ein Platzhalter, ersetzt durch das aktuelle Verzeichnis, das von find gefunden wurde.
  • \; -exec

Wenn Sie diesen Befehl ausführen, wird der Pfad angezeigt und die letzte modifizierte Zeit jedes Verzeichnisses vor 7 Tagen. Auf diese Weise können Sie überprüfen, ob das gefundene Verzeichnis tatsächlich vor 7 Tagen geändert wurde.

Hier ist ein Ausgabebeispiel:

 <code>/home/ostechnix/Projects/Python 2024-03-22 14:18:14.958042173 0530 /home/ostechnix/Projects/Vim 2024-03-22 14:05:55.887041168 0530</code>

Die in der Ausgabe angezeigte Änderungszeit hilft Ihnen zu bestätigen, dass das Verzeichnis tatsächlich länger als 7 Tage dauert, wie dies vom ursprünglichen find fund erforderlich ist.

Suchen Sie das Verzeichnis innerhalb des angegebenen Bereichs

Wir können das Verzeichnis innerhalb des angegebenen Tiefenbereichs mit den Optionen maxdepth und mindepth des Befehls find durchsuchen.

Das Folgende ist die Syntax:

 Finden/Pfad/to/suche -depth x -maxDepth y -Typ D.

Lassen Sie mich erklären, was jede Option in diesem Befehl tut:

  1. find /path/to/search : Teilen Sie den Befehl zum find von Suchen aus /path/to/search .
  2. -mindepth X : Diese Option legt die Mindesttiefe des Verzeichnisses so ein, dass sie in die Suchergebnisse einbezogen werden. Der Wert X repräsentiert die minimale Anzahl von Verzeichnisstufen ab dem Startpunkt.
  3. -maxdepth Y : Diese Option legt die maximale Tiefenstufe des Verzeichnisses fest, die in die Suchergebnisse einbezogen werden. Der Wert y stellt die maximale Anzahl von Verzeichnisniveaus dar, die vom Startpunkt ab dem Ausgangspunkt beginnen.
  4. -type d : Diese Option stellt sicher, dass find nur Verzeichnisse sucht, nicht normale Dateien.

Beachten Sie, dass die Option -mindepth Option vor anderen Parametern, einschließlich -type , angegeben werden sollte.

Um beispielsweise nach einem Verzeichnis zu suchen, können Sie /Projects folgenden Befehl verwenden:

 $ find ~/projects -mdepth 2 -maxdepth 4 -Typ D.

Dieser Befehl sucht Verzeichnisse (enthalten) (enthalten) mindestens 2 Ebenen tief und bis zu 4 Schichten tief in Bezug auf das Verzeichnis /Projects .

Sie können die Werte von x und y entsprechend Ihren spezifischen Anforderungen einstellen. Wenn Sie beispielsweise nach einem Verzeichnis suchen möchten, das genau 3 Ebenen tief sind, können Sie verwenden:

 $ find ~/projects -mdepth 3 -maxdepth 3 -Typ D.

Dies enthält in den Suchergebnissen nur 3-layer-tiefe Verzeichnisse.

Durch die Verwendung maxdepth und mindepth in Kombination können Sie Ihre Suche auf einen bestimmten Bereich der Verzeichnistiefe einschränken, was für die Organisation und Verwaltung von Dateisystemen sehr nützlich ist.

Finden Sie ein Verzeichnis basierend auf Verzeichnisberechtigungen

Um ein Verzeichnis zu finden, das auf Berechtigungen des Verzeichnisses basiert, können Sie den Befehl find mit der Option -perm verwenden.

 Finden/Pfad/to/such -typ d -perm<permission_specification></permission_specification>

Ersetzen /path/to/search durch das Verzeichnis, das Sie mit der Suche beginnen möchten und<permission_specification></permission_specification> Ersetzen Sie durch die erforderlichen Berechtigungen. Sie können Berechtigungen mit Octal Notation angeben.

Lassen Sie mich Ihnen einige Beispiele zeigen.

Alle Verzeichnisse mit den Berechtigungen zu finden

 $ find.

Um Verzeichnisse zu finden, in denen der Eigentümer RWX -Berechtigungen hat, verfügt die Gruppe über RX -Berechtigungen, und andere haben keine Berechtigungen:

 $ find.

Alle Verzeichnisse in ~/Projekten zu finden, in denen der Eigentümer über Berechtigungen und Gruppen verfügt und andere RX -Berechtigungen haben:

 $ find ~/projects ~ -typ d -perm -005

Sie können sich entsprechend Ihren spezifischen Anforderungen anpassen<permission_specification></permission_specification> . Zusätzlich können Sie -maxdepth und -mindepth verwenden, um die Tiefe der Suche bei Bedarf zu steuern.

Suchen Sie Verzeichnisse mit einer bestimmten Anzahl von Dateien

Um Verzeichnisse zu finden, die eine bestimmte Anzahl von Dateien enthalten, können Sie find , wc und Bash in Kombination verwenden.

Beispiel:

Der folgende Befehl sucht nach Verzeichnissen, die zufällig 4 Dateien im aktuellen Verzeichnis und seine Unterverzeichnisse enthalten und den vollständigen Pfad zu diesen Verzeichnissen drucken.

 $ find.

Lassen Sie uns Schritt für Schritt den Befehl aufschlüsseln:

  1. find . -type d
  2. -exec bash -c exec find -exec bash -c '...' _ {} \;
  3. if [ $(find "$1" -maxdepth 1 -type f | wc -l) -eq 4 ]; then echo "$1"; fi
  • $(find "$1" -maxdepth 1 -type f | wc -l) : Dieser Abschnitt berechnet die Anzahl der Dateien (nicht die Verzeichnisse) im aktuellen Verzeichnis ("$ 1"). -maxdepth 1 stellt sicher, dass sie nur Dateien im aktuellen Verzeichnis berechnet und nicht Dateien im Unterverzeichnis.
  • [ ... -eq 4 ] : Dies überprüft, ob die Anzahl der Dateien im aktuellen Verzeichnis genau 4 beträgt.
  • then echo "$1"; fi

Dies wäre beispielsweise nützlich, wenn Sie eine bestimmte Reihe von Verzeichnissen haben, die eine bestimmte Anzahl von Dateien enthalten sollten, und Sie möchten schnell alle Verzeichnisse identifizieren, die diese Kriterien nicht erfüllen.

Suche nach leerem Verzeichnis

Um ein leeres Verzeichnis zu finden, verwenden Sie die Flagge -empty :

 Finden Sie/Pfad/to/such -typ -

Um beispielsweise nach einem leeren Verzeichnis im Verzeichnis "Arbeit" zu suchen, rennen Sie:

 $ find ~/ work/ -typ d -ingy

Denken Sie daran, den Pfad nach Bedarf anzupassen.

Zusammenfassen

In diesem Leitfaden haben Sie mehrere Techniken für die Suche nach Verzeichnissen in Linux -Systemen mit dem Befehl find gelernt.

Sie können nach dem Namen, zum letzten Mal der Änderung oder nach Anzahl der internen Dateien suchen. Sie können sogar leere Ordner oder Ordner mit spezifischen Berechtigungen finden.

Wenn Sie lernen, wie Sie Optionen wie maxdepth , mindepth und size verwenden, können Sie Ihre Suche verbessern, um sich auf die spezifischen Verzeichnisse zu konzentrieren, die Sie benötigen.

Deshalb in Panik in Panik, wenn der Ordner das nächste Mal verloren geht! Verwenden Sie diese find -Befehle, um es zu verfolgen und die Datei organisiert zu halten.

Das obige ist der detaillierte Inhalt vonSo finden Sie ein Verzeichnis in Linux aus der Befehlszeile. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn