Befehl suchen unter Linux (Dateien und Verzeichnisse suchen)

0 Comments

Der Befehl find ist eines der leistungsstärksten Tools im Linux-Arsenal der Systemadministratoren. Es sucht nach Dateien und Verzeichnissen in einer Verzeichnishierarchie basierend auf einem vom Benutzer angegebenen Ausdruck und kann benutzerdefinierte Aktionen für jede übereinstimmende Datei ausführen.

Mit dem Befehl find können Sie nach Dateien und Verzeichnissen suchen, die auf ihren Berechtigungen, Typ, Datum, Besitz, Größe und mehr basieren., Es kann auch mit anderen Tools wie grep oder sed kombiniert werden .

Befehlssyntax suchen #

Die allgemeine Syntax für den Befehl find lautet wie folgt:

  • Das Attribut options steuert die Behandlung symbolischer Links, Debugging-Optionen und Optimierungsmethoden.
  • Das Attribut path... definiert das Startverzeichnis oder die Verzeichnisse, in denen find die Dateien durchsucht.,
  • Dasexpression Attribut besteht aus Optionen, Suchmustern und Aktionen, die durch Operatoren getrennt sind.

Um nach Dateien in einem Verzeichnis zu suchen, muss der Benutzer, der den Befehl find aufruft, Leseberechtigungen für dieses Verzeichnis haben.

Schauen wir uns das folgende Beispiel an:

Dateien nach Namen suchen #

Dateien nach Namen finden ist wahrscheinlich die häufigste Verwendung des Befehls find., Um eine Datei nach ihrem Namen zu suchen, verwenden Sie die Option gefolgt vom Namen der gesuchten Datei.

Um beispielsweise im Verzeichnis /home/linuxize nach einer Datei mit dem Namen document.pdf zu suchen, verwenden Sie den folgenden Befehl:

Um eine Groß-/Kleinschreibung-Suche auszuführen, ändern Sie die Option mit -iname:

Der obige Befehl stimmt mit „Dokument.pdf“, “ – DOKUMENT.PDF” ..etc.,

Dateien nach Erweiterung suchen #

Die Suche nach Dateien nach Erweiterung entspricht der Suche nach Dateien nach Namen. Um beispielsweise alle Dateien zu finden, die mit .log.gz im Verzeichnis /var/log/nginx enden, geben Sie Folgendes ein:

Es ist wichtig zu erwähnen, dass Sie entweder das Muster zitieren oder dem Sternchen entkommen müssen Symbol mit backslash \ damit es nicht von der Shell interpretiert wird, wenn Sie das Platzhalterzeichen verwenden.,

Um alle Dateien zu finden, die nicht mit dem regulären Ausdruck übereinstimmen *.log.gz können Sie die Option -not. Um beispielsweise alle Dateien zu finden, die nicht mit *.log.gz enden, verwenden Sie:

Suchen Sie Dateien nach Typ #

Manchmal müssen Sie möglicherweise nach bestimmten Dateitypen wie regulären Dateien, Verzeichnissen oder Symlinks suchen. Unter Linux ist alles eine Datei.,div>: named pipe (FIFO)

  • s: socket
  • Um beispielsweise alle Verzeichnisse im aktuellen Arbeitsverzeichnis zu finden, würden Sie Folgendes verwenden:

    Das übliche Beispiel wäre , die Website-Dateiberechtigungen rekursiv in 644 und die Verzeichnisberechtigungen in 755 Verwenden Sie den Befehl chmod:

    Dateien nach Größe suchen #

    Um Dateien basierend auf der Dateigröße zu finden, übergeben Sie den Parameter -size zusammen mit den Größenkriterien.,9fdb538a6b“>: 512-Byte-Blöcke (Standard)

  • c: bytes
  • w: Zwei-Byte-Wörter
  • k: Kilobyte
  • M: Megabyte
  • G: Gigabyte
  • Der folgende Befehl findet alle Dateien genau 1024 Bytes innerhalb der /tmp Verzeichnis:

    Die find können Sie auch nach Dateien suchen, die größer oder kleiner als eine bestimmte Größe sind.,

    Im folgenden Beispiel suchen wir nach allen Dateien kleiner als 1MB im aktuellen Arbeitsverzeichnis. Beachten Sie das minus - Symbol vor dem Größenwert:

    Wenn Sie nach Dateien mit einer Größe größer als 1MB suchen möchten, müssen Sie das Plus + Symbol:

    Sie können sogar nach Dateien in einem Größenbereich suchen., Der folgende Befehl findet alle Dateien zwischen 1 und 2MB:

    Dateien nach Änderungsdatum suchen #

    Der Befehl find kann auch nach Dateien suchen, die auf ihrer letzten Änderung, ihrem Zugriff oder ihrer Änderungszeit basieren.

    Verwenden Sie wie bei der Suche nach Größe die Plus-und Minus-Symbole für “ größer als „oder“kleiner als“.

    Angenommen, Sie haben vor einigen Tagen eine der dovecot-Konfigurationsdateien geändert,aber Sie haben vergessen, welche., Sie können alle Dateien einfach unter dem Verzeichnis /etc/dovecot/conf.d filtern, das mit .conf endet und in den letzten fünf Tagen geändert wurde:

    Hier ist ein weiteres Beispiel für das Filtern von Dateien basierend auf dem Änderungsdatum mit der Option -daystart., Der folgende Befehl listet alle Dateien im Verzeichnis /home auf, die vor einigen Tagen geändert wurden 30 oder mehr:

    Dateien nach Berechtigungen suchen #

    Mit der Option -perm können Sie nach Dateien suchen, die auf den Dateiberechtigungen basieren.,

    Um beispielsweise alle Dateien mit Berechtigungen von genau 775 im Verzeichnis /var/www/html zu finden, verwenden Sie:

    Sie können dem numerischen Modus minus - oder Schrägstrich /.

    Wenn Schrägstrich / als Präfix verwendet wird, muss mindestens eine Kategorie (Benutzer, Gruppe oder andere) mindestens die entsprechenden Bits haben, damit eine Datei übereinstimmt.,

    Betrachten Sie den folgenden Beispielbefehl:

    Der obige Befehl stimmt mit allen Dateien überein, für die Leseberechtigungen für Benutzer, Gruppen oder andere festgelegt sind.

    Wenn minus - als Präfix verwendet wird, müssen mindestens die angegebenen Bits festgelegt werden, damit die Datei übereinstimmt., Der folgende Befehl sucht nach Dateien mit Lese – und Schreibberechtigung für den Eigentümer und die Gruppe und kann von anderen Benutzern gelesen werden:

    Dateien nach Eigentümer suchen #

    Um Dateien zu finden, die einem bestimmten Benutzer oder einer bestimmten Gruppe gehören, verwenden Sie die Optionen -user und -group.

    Um beispielsweise nach allen Dateien und Verzeichnissen zu suchen, die dem Benutzer gehören linuxize, würden Sie Folgendes ausführen:

    Hier ist ein reales Beispiel., Angenommen, Sie möchten alle Dateien des Benutzers finden www-data und den Besitz der übereinstimmenden Dateien von www-data in nginxändern:

    Dateien suchen und löschen #

    Um alle übereinstimmenden Dateien zu löschen, fügen Sie die -delete Option bis zum Ende des Übereinstimmungsausdrucks.

    Stellen Sie sicher, dass Sie diese Option nur verwenden, wenn Sie sicher sind, dass das Ergebnis mit den Dateien übereinstimmt, die Sie löschen möchten., Es ist immer eine gute Idee, die übereinstimmenden Dateien zu drucken, bevor Sie die Option -delete.

    Um beispielsweise alle Dateien mit der Endung .temp aus der /var/log/ zu löschen, verwenden Sie:

    Verwenden Sie die Option -delete mit äußerster Vorsicht. Der Befehl find wird als Ausdruck ausgewertet, und wenn Sie zuerst die Option -delete hinzufügen, löscht der Befehl alles unter den von Ihnen angegebenen Startpunkten.,

    Wenn es um Verzeichnisse geht, kann find nur leere Verzeichnisse löschen, genau wie rmdir .

    Schlussfolgerung #

    Wir haben Ihnen gezeigt, wie Sie den Befehl find mit verschiedenen Optionen und Kriterien verwenden.

    Dieser Artikel sollte Ihnen ein grundlegendes Verständnis dafür geben, wie Sie Dateien auf Ihren Linux-Systemen finden. Sie können auch die Manpage find besuchen und alle anderen leistungsstarken Optionen des Befehls find lesen.


    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.