Der find-Befehl in Linux wird verwendet, um nach Dateien und Verzeichnissen in bestimmten Verzeichnissen anhand verschiedener Kriterien zu suchen. Dieser Befehl ist eines der mächtigsten und am weitesten verbreiteten Dienstprogramme in Linux.
Das grundlegende Format des find-Befehls ist wie folgt:
find [path] [expression]
wobei:
path
ist der Pfad zu dem Verzeichnis, in dem nach Dateien gesucht werden soll (standardmäßig durchsucht find das aktuelle Verzeichnis und alle seine Unterverzeichnisse);
Ausdruck
ist ein Ausdruck, der die Kriterien für die Suche nach Dateien definiert.
Nachfolgend sind einige der gebräuchlichsten Dateisuchkriterien aufgeführt, die in einem find-Befehlsausdruck verwendet werden können:
-name
: Suche nach Dateien anhand ihres Namens. Beispiel:
find /home/user -name myfile.txt
-typ
: Suche nach Dateien eines bestimmten Typs (z. B. f
für reguläre Dateien oder d
für Verzeichnisse). Beispiel:
find /home/user -type f
-size
: Suche nach Dateien anhand ihrer Größe. Beispiel:
find /home/user -size +10M
-mtime
: Suche nach Dateien nach der letzten Änderungszeit. Beispiel:
find /home/user -mtime -7
-user
und -group
: Suche nach Dateien nach Eigentümer und Gruppe. Ein Beispiel:
find /home/user -user bob -group users
Sie können die logischen Operatoren -and
, -or
und -not
verwenden , um
mehrere Suchkriterien in einem einzigen Ausdruck zu kombinieren.
Der folgende Befehl findet zum Beispiel alle Dateien im Verzeichnis /home/user
, die in den letzten 7 Tagen geändert wurden und größer als 10 Megabyte sind:
find /home/user -type f -mtime -7 -size +10M
Mit dem Befehl find können Sie auch verschiedene Aktionen mit den gefundenen Dateien durchführen, indem Sie die Option -exec
verwenden. So können Sie beispielsweise mit dem folgenden Befehl alle Dateien löschen, die vor mehr als 30 Tagen geändert wurden:
find /home/user -type f -mtime +30 -exec rm {} ;
Hier führt die Option -exec
den Befehl rm
für jede gefundene Datei aus und ersetzt den Dateinamen im Befehl durch {}
.
Der find-Befehl
ist ein leistungsfähiges Werkzeug zum Auffinden von Dateien und Verzeichnissen in Linux, das für verschiedene Verwaltungsaufgaben verwendet werden kann.
Der find-Befehl
unterstützt viele weitere Optionen, mit denen sich Dateien noch genauer finden lassen:
-iname
: Suche nach Dateien anhand des Namens ohne Berücksichtigung der Groß- und Kleinschreibung. Zum Beispiel:
find /home/user -iname myfile.txt
-regex
: Suche nach Dateien, deren Namen einem bestimmten regulären Ausdruck entsprechen. Ein Beispiel:
find /home/user -regex ".*.txt$"
-maxdepth
und -mindepth
: Begrenzen Sie die Suchtiefe für Dateien in Unterverzeichnissen. Beispiel:
find /home/user -maxdepth 2 -type f
-prune
: Schließt bestimmte Verzeichnisse von der Suche aus. Beispiel:
find /home/user -path /home/user/excluded -prune -o -type f -print
-print
: gibt die Liste der gefundenen Dateien auf der Standardausgabe aus. Ein Beispiel:
find /home/user -type f -print
find
unterstützt auch die Suche von Dateien nach verschiedenen Attributen wie Berechtigungen, Dateiattributen, SELinux-Labels
und anderen. Weitere Informationen zu diesen Optionen finden Sie in der Dokumentation des Befehls find
.
Der Befehl kann im gesamten Dateisystem nach Dateien und Verzeichnissen suchen, was sehr viel Zeit und Ressourcen in Anspruch nehmen kann. Daher ist es wichtig, bei der Verwendung dieses Befehls vorsichtig zu sein und darauf zu achten, dass die Suchkriterien richtig eingestellt sind, um zu vermeiden, dass unnötige Dateien oder Fehler im System gefunden werden.