Einige der in diesem Beitrag geteilten Links sind Affiliate-Links. Wenn du auf den Link klickst und etwas kaufst, erhalten wir eine Affiliate-Provision ohne zusätzliche Kosten für dich.
Der find
-Befehl wird in Linux- und Unix-ähnlichen Betriebssystemen verwendet, um nach Dateien und Verzeichnissen innerhalb eines Verzeichnisses oder Verzeichnisbaums zu suchen. Dieser Befehl ist äußerst leistungsfähig und flexibel, wenn es darum geht, bestimmte Dateien oder Verzeichnisse basierend auf verschiedenen Kriterien zu finden.
Allgemeine Verwendung #
Der find
-Befehl wird verwendet, um Dateien und Verzeichnisse zu suchen, die bestimmten Kriterien entsprechen. Der Befehl hat folgendes Format:
find [pfad] [optionen] [kriterien] [aktion]
Hierbei steht pfad
für das Verzeichnis, in dem die Suche beginnen soll. optionen
sind zusätzliche Parameter, kriterien
spezifizieren die Suchbedingungen, und aktion
legt fest, was mit den gefundenen Dateien oder Verzeichnissen geschehen soll.
Optionen des find
-Befehls #
Der find
-Befehl bietet viele Optionen, die dir eine präzise Steuerung bei der Suche ermöglichen. Die wichtigsten Optionen sind in der folgenden Tabelle zusammengefasst:
Option | Funktion |
---|---|
-name | Sucht nach Dateien oder Verzeichnissen, die mit dem angegebenen Namen übereinstimmen. |
-iname | Sucht nach Dateien oder Verzeichnissen, die mit dem angegebenen Namen übereinstimmen, ohne Groß-/Kleinschreibung zu beachten. |
-type | Sucht nach Dateien eines bestimmten Typs, z.B. f für reguläre Dateien, d für Verzeichnisse. |
-mtime | Sucht nach Dateien, die vor oder nach einer bestimmten Anzahl von Tagen modifiziert wurden. |
-atime | Sucht nach Dateien, deren Zugriffszeit vor oder nach einer bestimmten Anzahl von Tagen liegt. |
-size | Sucht nach Dateien, die eine bestimmte Größe haben. |
-exec | Führt einen Befehl für jede gefundene Datei oder jedes gefundene Verzeichnis aus. |
-print | Gibt die Pfade der gefundenen Dateien oder Verzeichnisse aus. |
-delete | Löscht die gefundenen Dateien oder Verzeichnisse. |
-maxdepth | Begrenzung der Verzeichnistiefe bei der Suche. |
-mindepth | Mindesttiefe der Verzeichnisebenen, die durchsucht werden sollen. |
--help | Zeigt eine Hilfeseite mit den verfügbaren Optionen an. |
--version | Zeigt die Version des find -Befehls an. |
Beispiele für die Verwendung #
Um nach einer Datei namens example.txt
im aktuellen Verzeichnis und dessen Unterverzeichnissen zu suchen, gibst du find . -name example.txt
ein. Dieser Befehl sucht nach Dateien mit dem Namen example.txt
im aktuellen Verzeichnis (.) und allen Unterverzeichnissen.
Wenn du nach Dateien suchen möchtest, deren Namen example.txt
sind, ohne auf die Groß-/Kleinschreibung zu achten, verwendest du find . -iname example.txt
. Dieser Befehl findet example.txt
, Example.txt
und andere Varianten.
Falls du nach Verzeichnissen suchen möchtest, kannst du find . -type d -name directory_name
verwenden. Dieser Befehl sucht nach Verzeichnissen mit dem Namen directory_name
.
Wenn du Dateien finden möchtest, die in den letzten 7 Tagen modifiziert wurden, verwendest du find . -mtime -7
. Dieser Befehl findet alle Dateien, deren Änderungsdatum innerhalb der letzten 7 Tage liegt.
Um eine bestimmte Größe von Dateien zu finden, z.B. Dateien, die größer als 100 MB sind, gibst du find . -size +100M
ein. Dieser Befehl sucht nach Dateien, die größer als 100 Megabyte sind.
Falls du für jede gefundene Datei einen Befehl ausführen möchtest, z.B. um die Dateiberechtigungen zu ändern, kannst du find . -name "*.txt" -exec chmod 644 {} \;
verwenden. Dieser Befehl findet alle .txt
-Dateien und ändert ihre Berechtigungen auf 644
.
Wenn du alle gefundenen Dateien und Verzeichnisse löschen möchtest, kannst du find . -name "*.tmp" -delete
verwenden. Dieser Befehl findet und löscht alle .tmp
-Dateien im aktuellen Verzeichnis und dessen Unterverzeichnissen.
Verwendung unter verschiedenen Linux-Distributionen #
Der find
-Befehl ist in allen gängigen Linux-Distributionen verfügbar, da er Teil der grundlegenden GNU Core Utilities ist. Dazu gehören Distributionen wie Ubuntu, Debian, Fedora, CentOS, Red Hat Enterprise Linux (RHEL), Arch Linux, OpenSUSE und viele andere. Der Befehl ist auch auf anderen Unix-ähnlichen Betriebssystemen wie macOS und verschiedenen BSD-Derivaten verfügbar.
Fazit #
Der find
-Befehl ist ein äußerst leistungsfähiges Werkzeug zur Suche nach Dateien und Verzeichnissen in Linux und Unix-ähnlichen Systemen. Mit seinen vielfältigen Optionen kannst du präzise und flexible Suchvorgänge durchführen und die gefundenen Ergebnisse gezielt weiterverarbeiten. Egal, welche Linux-Distribution du verwendest, der find
-Befehl bleibt ein unverzichtbares Hilfsmittel für die Dateiverwaltung und Systemadministration.