Android

So finden Sie Dateien unter Linux über die Befehlszeile

Datei-Rechte in Linux ändern und verwalten [Terminal]

Datei-Rechte in Linux ändern und verwalten [Terminal]

Inhaltsverzeichnis:

Anonim

Der Befehl find ist eines der leistungsstärksten Tools im Linux-Systemadministrator-Arsenal. 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 Berechtigungen, Typ, Datum, Eigentümer, Größe usw. basieren. Es kann auch in Kombination mit anderen Tools wie grep oder sed .

Linux find Befehlssyntax

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

find

  • Das options Attribut steuert die Behandlung der symbolischen Links, der Debugging-Optionen und der Optimierungsmethode. Das path… -Attribut definiert das Startverzeichnis oder die Verzeichnisse, in denen find die Dateien durchsucht. Das expression Attribut besteht aus Optionen, Suchmustern und durch Bediener getrennte Aktionen.

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

Schauen wir uns das folgende Beispiel an:

find -L /var/www -name "*.js"

  • Die Option -L (options) weist den Befehl find an, symbolischen Links zu folgen. Das Verzeichnis /var/www (path…) gibt das zu durchsuchende Verzeichnis an. Der (Ausdruck) -name "*.js weist find an, nach Dateien zu suchen, die auf enden .js (JavaScript-Dateien).

Dateien nach Namen suchen

Das Suchen von Dateien nach Namen ist wahrscheinlich die häufigste Verwendung des Befehls find . Um eine Datei anhand ihres Namens zu finden, verwenden Sie die Option -name nach dem Namen der -name Datei.

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

find /home/linuxize -type f -name document.pdf

Um eine Suche ohne -name Groß- und Kleinschreibung durchzuführen, ändern Sie die Option -iname mit -iname :

find /home/linuxize -type f -iname document.pdf

Der obige Befehl stimmt mit "Document.pdf", "DOCUMENT.pdf" usw. überein.

Dateien nach Erweiterung suchen

Das Suchen nach Dateien anhand der Erweiterung entspricht dem Suchen nach Dateien anhand des Namens. Um beispielsweise alle Dateien mit der Endung .log.gz im .log.gz /var/log/nginx zu finden, können Sie .log.gz verwenden:

find /var/log/nginx -type f -name '*.log.gz'

Es ist wichtig zu erwähnen, dass Sie bei Verwendung des Platzhalterzeichens entweder das Muster in Anführungszeichen setzen oder das Sternchen * mit einem Backslash \ maskieren müssen, damit es von der Shell nicht interpretiert wird.

Mit der Option -not können Sie alle Dateien finden, die nicht mit der *.log.gz . Um beispielsweise alle Dateien zu finden, die nicht mit *.log.gz , würden Sie *.log.gz verwenden:

find /var/log/nginx -type f -not -name '*.log.gz'

Dateien nach Typ suchen

Manchmal müssen Sie möglicherweise nach bestimmten Dateitypen suchen, z. B. nach normalen Dateien, Verzeichnissen oder Symlinks. In Linux ist alles eine Datei.

Verwenden Sie zum Suchen nach Dateien anhand ihres Typs die Option -type und einen der folgenden Deskriptoren, um den Dateityp anzugeben:

  • f : eine reguläre Datei d : Verzeichnis l : symbolische Verknüpfung c : Zeichengeräte b : Blockgeräte p : Named Pipe (FIFO) s : Socket

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

find. -type d

Das übliche Beispiel wäre, die Dateiberechtigungen der Website rekursiv in 644 und die Verzeichnisberechtigungen in 755 zu ändern, indem Sie den Befehl chmod :

find /var/www/my_website -type d -exec chmod 0755 {} ; find /var/www/my_website -type f -exec chmod 0644 {} ;

Dateien nach Größe suchen

-size zum Suchen von Dateien anhand der Dateigröße den Parameter -size zusammen mit den Größenkriterien. Sie können die folgenden Suffixe verwenden, um die Dateigröße anzugeben:

  • b : 512-Byte-Blöcke (Standard) c : Bytes w : Zwei-Byte-Wörter k : Kilobytes M : Megabytes G : Gigabytes

Der folgende Befehl findet alle Dateien mit genau 1024 Bytes im Verzeichnis /tmp :

find /tmp -type f -size 1024c

Mit dem Befehl find können Sie auch nach Dateien suchen, die größer oder kleiner als eine angegebene Größe sind.

Im folgenden Beispiel suchen wir nach allen Dateien mit weniger als 1 1MB im aktuellen Arbeitsverzeichnis. Beachten Sie das Minuszeichen vor dem Größenwert:

find. -type f -size -1M

find. -type f -size +1M

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

find. -type f -size +1M -size 21M

Dateien nach Änderungsdatum suchen

Der Befehl find kann auch anhand der letzten Änderung, des letzten Zugriffs oder der letzten Änderungszeit nach Dateien suchen.

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

Nehmen wir an, Sie haben vor ein paar Tagen eine der Dovecot-Konfigurationsdateien geändert, aber vergessen, welche. Sie können problemlos alle Dateien im Verzeichnis /etc/dovecot/conf.d , die mit .conf und in den letzten fünf Tagen geändert wurden mit:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

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

find /home -mtime +30 -daystart

Suchen von Dateien nach Berechtigungen

Mit der Option -perm können Sie anhand der Dateiberechtigungen nach Dateien suchen.

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

find /var/www/html -perm 644

Sie können dem numerischen Modus ein Minuszeichen oder einen Schrägstrich / voranstellen.

Wenn der Schrägstrich / als Präfix verwendet wird, müssen für mindestens eine Kategorie (Benutzer, Gruppe oder andere) mindestens die entsprechenden Bits gesetzt sein, damit eine Datei übereinstimmt.

Betrachten Sie den folgenden Beispielbefehl:

find. -perm /444

Mit dem obigen Befehl werden alle Dateien mit Leseberechtigungen abgeglichen, die entweder für Benutzer, Gruppen oder andere festgelegt wurden.

Wenn Minus - als Präfix verwendet wird, muss festgelegt werden, dass die Datei mindestens den angegebenen Bits entspricht. Der folgende Befehl sucht nach Dateien, die über Lese- und Schreibberechtigungen für den Eigentümer und die Gruppe verfügen und von anderen Benutzern gelesen werden können:

find. -perm -664

Dateien nach Besitzer suchen

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

Um beispielsweise nach allen Dateien und Verzeichnissen zu suchen, die dem Benutzer linuxize , führen Sie linuxize aus:

find / -user linuxize

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

find / -user www-data -type f -exec chown nginx {} ;

Dateien suchen und löschen

Um alle übereinstimmenden Dateien zu löschen, -delete Option -delete an das Ende des Übereinstimmungsausdrucks an.

Stellen Sie sicher, dass Sie diese Option nur verwenden, wenn Sie sicher sind, dass das Ergebnis mit den zu löschenden Dateien übereinstimmt. 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 dem .temp /var/log/ zu löschen, würden Sie .temp verwenden:

find /var/log/ -name `*.temp` -delete Verwenden Sie die Option -delete mit äußerster Vorsicht. Die -delete wird als Ausdruck ausgewertet. Wenn Sie -delete Option -delete hinzufügen, -delete der Befehl alle -delete unterhalb der angegebenen Startpunkte.

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

Fazit

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

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

Terminal suchen