Linux find: Die ultimative Befehlsreferenz zum Auffinden von Dateien und Verzeichnissen
Was ist der Befehl 'find'?
Der Befehl find
ist ein mächtiges Werkzeug in der Linux-Befehlszeile, das es dir ermöglicht, Dateien und Verzeichnisse auf deinem System zu suchen. Er ist besonders hilfreich, wenn du nach einer bestimmten Datei suchen musst, die sich in einem verschachtelten Verzeichnisbaum befindet oder bestimmte Kriterien erfüllt.
Wann sollte ich den Befehl find
verwenden?
find
ist nützlich, wenn:
- Du nach einer bestimmten Datei suchst, deren Namen oder Pfad du nicht genau kennst.
- Du nach Dateien suchen möchtest, die bestimmten Kriterien entsprechen, wie z. B. Größe, Typ oder Änderungsdatum.
- Du rekursiv in Unterverzeichnissen suchen möchtest, um versteckte Dateien aufzuspüren.
- Du bestimmte Dateien oder Verzeichnisse von deiner Suche ausschließen möchtest.
Vorteile der Verwendung des Befehls find
Die Verwendung von find
bietet mehrere Vorteile:
-
Effizienz:
find
kann große Datenmengen schnell durchsuchen und Ergebnisse effizient zurückgeben. - Flexibilität: Der Befehl bietet eine Vielzahl von Optionen, mit denen du deine Suche anpassen kannst.
-
Zuverlässigkeit:
find
ist ein stabiles und zuverlässiges Werkzeug, das genaue Ergebnisse liefert.
Optionen zum Filtern von Ergebnissen
Um deine Suchanfrage zu präzisieren und nur die gewünschten Ergebnisse zu erhalten, bietet der Befehl find
eine Reihe von Optionen zum Filtern von Ergebnissen.
Dateinamenmuster
Verwende die Option -name <Muster>
, um nach Dateien zu suchen, deren Name mit dem angegebenen Muster übereinstimmt. Wildcards wie *
und ?
können verwendet werden, um beliebige Zeichen bzw. einzelne Zeichen zu ersetzen.
Dateigröße
Filtere Ergebnisse basierend auf der Dateigröße mit den Optionen -size <operator> <Größe>
und -size <Vergleichsgröße>c
. Hierbei kann <operator>
einer der folgenden Vergleiche sein: +
, -
, oder =
. Die Größenangabe <Größe>
kann in Bytes (B), Kilobytes (K), Megabytes (M) oder Gigabytes (G) ausgedrückt werden.
Dateityp
Suche nach Dateien eines bestimmten Typs mit der Option -type <Typ>
. Die gültigen Typen sind:
-
f
für normale Dateien -
d
für Verzeichnisse -
l
für symbolische Links -
p
für Pipes -
s
für Sockets
Änderungsdatum und Zugriffsdauer
Filtere Ergebnisse basierend auf dem Änderungsdatum oder dem Datum des letzten Zugriffs. Verwende die Optionen -mtime <Alter>
, -atime <Alter>
und -ctime <Alter>
, wobei <Alter>
die Anzahl der Tage, Stunden oder Minuten angibt, seit denen die Änderung, der Zugriff bzw. die Statusänderung erfolgte.
Beispielsweise sucht find /home -atime -1
nach Dateien im Verzeichnis /home
, auf die in der letzten Stunde zugegriffen wurde.
Dateiberechtigungen
Verwende die Optionen -perm <Berechtigungen>
, +perm <Berechtigungen>
und -perm <Berechtigungen>
zum Filtern von Ergebnissen basierend auf Dateiberechtigungen. <Berechtigungen>
können in oktaler oder symbolischer Form angegeben werden.
Beispielsweise sucht find / -perm -u+r
nach Dateien, auf die der Benutzer Leserechte hat.
Aktionen, die auf gefundene Dateien angewendet werden können
Sobald du die gesuchten Dateien mit dem Befehl find
gefunden hast, kannst du verschiedene Aktionen auf sie anwenden. Nachfolgend sind einige nützliche Optionen aufgeführt:
Ausgabe von Informationen
-
-print
: Gibt den Pfad jeder gefundenen Datei aus. -
-ls
: Zeigt detaillierte Informationen zu jeder gefundenen Datei an, ähnlich wie der Befehlls -l
. -
-fprintf
: Gibt die angegebene Formatzeichenfolge für jede gefundene Datei aus. Beispiel:-fprintf "%f;%s;%p\n"
gibt den Dateinamen, die Größe und den Pfad aus.
Dateien bearbeiten
-
-delete
: Löscht die gefundenen Dateien. -
-exec
: Führt den angegebenen Befehl auf jede gefundene Datei aus. Beispiel:-exec cp {} /backup
kopiert die gefundenen Dateien in das Verzeichnis/backup
. -
-prune
: Beendet die Suche für das aktuelle Verzeichnis, wenn eine bestimmte Bedingung erfüllt ist. Beispiel:-prune -empty
überspringt leere Verzeichnisse.
Dateien verwalten
-
-copy
: Kopiert die gefundenen Dateien an einen anderen Ort. Beispiel:-copy -target-directory /new/location
-
-move
: Verschiebt die gefundenen Dateien an einen anderen Ort. Beispiel:-move -target-directory /new/location
-
-link
: Erstellt einen symbolischen Link zu jeder gefundenen Datei. Beispiel:-link -target-directory /new/symlink
Denke daran, dass einige dieser Aktionen Administratorrechte erfordern können, insbesondere wenn sie auf Systemdateien angewendet werden.
Verwendung von 'find' zur Suche nach bestimmten Kriterien
Mit 'find' kannst du die Suche nach Dateien und Verzeichnissen anhand verschiedener Kriterien verfeinern. Hier erfährst du, wie du bestimmte Informationen wie Dateiname, Größe oder Datum verwendest, um deine Suche einzugrenzen.
Suche nach Dateien anhand von Dateinamen
Willst du eine Datei mit einem bestimmten Namen finden, verwende die Option -name
. Gib den Namen der Datei in Anführungszeichen an, um Sonderzeichen zu vermeiden.
find . -name "my_file.txt"
Suche nach Dateien anhand von Größe
Die Option -size
hilft dir, Dateien anhand ihrer Größe zu finden. Du kannst verschiedene Einheiten wie c
(Byte), k
(Kilobyte), M
(Megabyte) oder G
(Gigabyte) verwenden.
find . -size +10M # Dateien größer als 10 MB finden
find . -size -10c # Dateien kleiner als 10 Byte finden
Suche nach Dateien anhand von Typ
Mit -type
kannst du nach Dateien oder Verzeichnissen suchen.
find . -type f # Dateien finden
find . -type d # Verzeichnisse finden
Suche nach Dateien anhand von Änderungsdatum oder Zugriffsdauer
Nutze -mtime
oder -atime
, um Dateien zu finden, die vor einer bestimmten Anzahl von Tagen zuletzt geändert oder darauf zugegriffen wurden.
find . -mtime -5 # Dateien finden, die in den letzten 5 Tagen geändert wurden
find . -atime +30 # Dateien finden, auf die in den letzten 30 Tagen nicht zugegriffen wurde
Suche nach Dateien anhand von Dateinamen, Größe oder Typ
Suche nach Dateinamen
Du kannst find verwenden, um Dateien nach ihrem Namen zu suchen. Verwende die Option -name
, gefolgt vom Namen der gesuchten Datei. Beispiel:
find /home -name "myfile.txt"
Wenn du nach einem Teil eines Dateinamens suchen möchtest, verwende die Option -iname
(ohne Groß-/Kleinschreibung). Beispiel:
find /home -iname "*text*"
Suche nach Dateigröße
Du kannst find verwenden, um Dateien nach ihrer Größe zu suchen. Verwende die Option -size
, gefolgt von einem Größenwert und einer Einheit (z. B. k für Kilobyte, m für Megabyte oder g für Gigabyte). Beispiel:
find /home -size +100M
Dies sucht nach Dateien, die größer als 100 Megabyte sind.
Suche nach Dateityp
Du kannst find verwenden, um Dateien nach ihrem Typ zu suchen. Verwende die Option -type
, gefolgt vom Dateityp (z. B. f für reguläre Datei, d für Verzeichnis oder l für Symlink). Beispiel:
find /home -type f
Dies sucht nach regulären Dateien im Verzeichnis /home
.
Suche nach Dateien anhand des Änderungsdatums oder des Zugriffsdauer
Neben der Suche nach Dateien anhand ihres Namens, ihrer Größe oder ihres Typs kannst du mit find
auch nach Dateien suchen, die innerhalb eines bestimmten Zeitraums geändert oder auf die zugegriffen wurde. Dies kann hilfreich sein, wenn du Dateien finden möchtest, die kürzlich aktualisiert oder verwendet wurden.
Suche nach Dateien anhand des Änderungsdatums
Um nach Dateien zu suchen, die innerhalb eines bestimmten Zeitraums geändert wurden, verwende die Option -mtime
. Diese Option akzeptiert ein Argument, das die Anzahl der Tage angibt, die seit der letzten Änderung der Datei vergangen sind.
Beispiele
- Suche nach Dateien, die in den letzten 24 Stunden geändert wurden:
find /path/to/directory -mtime 1
- Suche nach Dateien, die in der letzten Woche geändert wurden:
find /path/to/directory -mtime 7
- Suche nach Dateien, die vor mehr als 30 Tagen geändert wurden:
find /path/to/directory -mtime +30
Suche nach Dateien anhand des Zugriffsdauer
Um nach Dateien zu suchen, auf die innerhalb eines bestimmten Zeitraums zugegriffen wurde, verwende die Option -atime
. Diese Option akzeptiert ein Argument, das die Anzahl der Tage angibt, die seit dem letzten Zugriff auf die Datei vergangen sind.
Beispiele
- Suche nach Dateien, auf die in den letzten 24 Stunden zugegriffen wurde:
find /path/to/directory -atime 1
- Suche nach Dateien, auf die in der letzten Woche zugegriffen wurde:
find /path/to/directory -atime 7
- Suche nach Dateien, auf die vor mehr als 30 Tagen zugegriffen wurde:
find /path/to/directory -atime +30
Verwendung von 'find' zur Suche nach Dateien in Unterverzeichnissen
Wenn du nach Dateien in einem bestimmten Unterverzeichnis suchen möchtest, kannst du die Option -mindepth
verwenden. Diese Option gibt die minimale Tiefe der Verzeichnishierarchie an, in der du suchen möchtest. Hier ist ein Beispiel:
find /home/benutzer -mindepth 2 -name "config.txt"
Dieser Befehl sucht in allen Unterverzeichnissen von /home/benutzer
nach Dateien mit dem Namen "config.txt".
Du kannst auch die Option -maxdepth
verwenden, um die maximale Tiefe der Verzeichnishierarchie festzulegen, in der du suchen möchtest. Hier ist ein Beispiel:
find /home/benutzer -maxdepth 3 -name "config.txt"
Dieser Befehl sucht in den ersten drei Verzeichnisebenen unterhalb von /home/benutzer
nach Dateien mit dem Namen "config.txt".
Wenn du sowohl nach einer minimalen als auch nach einer maximalen Tiefe suchen möchtest, kannst du die Optionen -mindepth
und -maxdepth
zusammen verwenden. Hier ist ein Beispiel:
find /home/benutzer -mindepth 2 -maxdepth 3 -name "config.txt"
Dieser Befehl sucht in den Verzeichnisebenen 2 und 3 unterhalb von /home/benutzer
nach Dateien mit dem Namen "config.txt".
Mit find
kannst du auch nach Dateien in Verzeichnissen mit bestimmten Namen suchen. Dazu kannst du die Option -path
verwenden. Hier ist ein Beispiel:
find /home/benutzer -path "/home/benutzer/Dokumente/Projekte/*"
Dieser Befehl sucht nach allen Dateien in Verzeichnissen mit dem Namen "Projekte" im Verzeichnis "/home/benutzer/Dokumente".
Behandlung von Dateiberechtigungen bei der Suche
Der Befehl find
ermöglicht es dir dank seiner umfangreichen Optionen, deine Suche auf bestimmte Dateiberechtigungen einzugrenzen. Damit hast du die Möglichkeit, präzise Abfragen zu erstellen und Dateien mit bestimmten Zugriffsrechten zu identifizieren.
Suche nach Benutzerberechtigungen
Verwende die Optionen -user
und -group
um eine Suche auf Dateien zu beschränken, die einem bestimmten Benutzer oder einer Gruppe gehören. Dies kann z.B. hilfreich sein, um Dateien zu finden, die du selbst erstellt hast, oder um die Berechtigungen von Dateien zu überprüfen, an denen gemeinschaftlich gearbeitet wird.
Suche nach Zugriffsberechtigungen
Mit den Optionen -perm
und -perm
kannst du Dateien anhand ihrer Zugriffsberechtigungen filtern. Dabei kannst du sowohl die exakten Berechtigungen als auch Muster angeben.
Berücksichtigung von Dateiberechtigungen
Denke daran, dass find
deine eigenen Dateiberechtigungen berücksichtigt. Das bedeutet, dass du möglicherweise keine Ergebnisse erhältst, wenn du nach Dateien mit Berechtigungen suchst, auf die du keinen Zugriff hast. Um dieses Problem zu umgehen, kannst du die Option -ignore_readdir_race
verwenden, die Dateiberechtigungen ignoriert und die Suche erzwingt.
Beispiele zur Verwendung
Hier sind einige Beispiele dafür, wie du Dateiberechtigungen bei der Suche mit find
verwenden kannst:
-
Dateien finden, die du besitzt:
find / -user $(whoami)
-
Dateien finden, die der Gruppe "users" gehören:
find / -group users
-
Dateien finden, die die Berechtigungen "755" haben:
find / -perm 755
-
Dateien finden, die die Berechtigungen "rwxr-xr-x" haben:
find / -perm /rwxr-xr-x/
Durch die Berücksichtigung von Dateiberechtigungen bei deiner Suche kannst du deine Abfragen präzisieren und genau die Dateien identifizieren, nach denen du suchst.
Begrenzung der Suche auf bestimmte Verzeichnisse
Wenn du deine Suche auf bestimmte Verzeichnisse beschränken möchtest, kannst du die Option -path
verwenden. Mit dieser Option kannst du ein bestimmtes Verzeichnis oder einen Pfad als Argument angeben. find
durchsucht dann nur die angegebenen Verzeichnisse und ihre Unterverzeichnisse.
Verwendung von -path
Um -path
zu verwenden, gib den vollständigen Pfad zum Verzeichnis an, in dem du suchen möchtest. Du kannst auch Platzhalter wie *
und ?
verwenden, um Teilzeichenfolgen im Pfad abzugleichen.
find -path "/home/benutzer/Dokumente/*"
Dieser Befehl sucht nach allen Dateien und Verzeichnissen, die der Teilzeichenfolge Dokumente
im Pfad entsprechen.
Ausschließen von Verzeichnissen
Wenn du Verzeichnisse von der Suche ausschließen möchtest, kannst du die Option -prune
verwenden. Diese Option weist find
an, die Durchsuchung eines Verzeichnisses abzubrechen, sobald es erreicht ist.
find -path "/home/benutzer" -prune -o -print
Dieser Befehl sucht nach allen Dateien und Verzeichnissen im Verzeichnis /home/benutzer
, schließt aber das Verzeichnis /home/benutzer
selbst von der Suche aus.
Kombination von -path
und -prune
Du kannst die Optionen -path
und -prune
kombinieren, um gezieltere Suchvorgänge durchzuführen. Beispielsweise kannst du nach allen Dateien und Verzeichnissen in einem bestimmten Verzeichnis suchen, aber Unterverzeichnisse mit einem bestimmten Namen ausschließen.
find -path "/home/benutzer/Projekte/*" \
-prune -o -name "projekt1" -print
Dieser Befehl sucht nach allen Dateien und Verzeichnissen im Verzeichnis /home/benutzer/Projekte
, schließt aber alle Unterverzeichnisse mit dem Namen projekt1
von der Suche aus.
Ausnahmen vom Suchbereich angeben
Wenn du bestimmte Verzeichnisse oder Dateien von der Suche ausschließen möchtest, kannst du die Option -prune
verwenden. Dies ist besonders nützlich, wenn du große Verzeichnisse oder Verzeichnisse mit vielen Unterverzeichnissen durchsuchst.
-prune
-Option
Die Option -prune
weist find
an, die angegebene Bedingung zu überprüfen und die Suche zu beenden, wenn die Bedingung erfüllt ist. Die Syntax lautet:
-prune -[Optionen] [Ausnahmepfad]
Hier sind einige Beispiele für die Verwendung der Option -prune
:
- Alle versteckten Dateien und Verzeichnisse ausschließen:
find / -prune -type f
- Alle Dateien und Verzeichnisse im Verzeichnis "/tmp" ausschließen:
find / -prune -path "/tmp"
-xdev
-Option
Die Option -xdev
weist find
an, die Suche nicht auf andere Dateisysteme auszudehnen. Mit anderen Worten, die Suche bleibt auf dem aktuellen Dateisystem beschränkt. Dies kann nützlich sein, um die Suchzeit zu verkürzen, wenn du nur Dateien auf einem bestimmten Dateisystem suchen möchtest.
Die Syntax lautet:
-xdev
Beispiel für die Verwendung der Ausnahmen
Angenommen, du möchtest alle Dateien im Verzeichnis "/home" und seinen Unterverzeichnissen finden, aber du möchtest die Verzeichnisse "/home/user1" und "/home/user2" von der Suche ausschließen. Du kannst dies mit folgendem Befehl tun:
find /home -prune -path "/home/user1" -o -prune -path "/home/user2" -o -type f
Dieser Befehl weist find
an, die Suche in den Verzeichnissen "/home/user1" und "/home/user2" abzubrechen und nur nach regulären Dateien im Verzeichnis "/home" und seinen verbleibenden Unterverzeichnissen zu suchen.
Neue Posts
Hoymiles HM-800 blinkt grün: Bedeutung und Lösungen
Problemlösungen
Lösungen für ein langsames Roborock Netzwerk
Technologie
Alles, was Sie über den Netzwerksicherheitsschlüssel für HP Drucker wissen müssen
Drucker
Fritz 450E zurücksetzen: Schritt-für-Schritt-Anleitung für alle Szenarien
Technik
Was bedeutet es, wenn die Hoymiles DTU grün blinkt?
Energieeffizienz
Ultraxtend Wifi Anleitung: Schritt-für-Schritt zur optimalen Nutzung
Technologie
Bayern-WLAN Anmeldeseite kommt nicht – Ursachen und Lösungen
WLAN-Probleme
Linux Mint XFCE Systemanforderungen: Alles, was du wissen musst
Systemanforderungen
So ändern Sie den Download-Ordner in Opera GX: Eine Schritt-für-Schritt-Anleitung
Technologie
MX Linux Systemanforderungen: Alles, was du wissen musst
Systemanforderungen
Beliebte Posts
WLAN dBm-Tabelle: Signalstärke verstehen und Netzwerkprobleme beheben
Fehlerbehebung
Zurücksetzen des Hoymiles DTU: Eine umfassende Anleitung
Benutzerhandbuch
FRITZ!Box 7590: So beheben Sie einen defekten WLAN-Chip
Produktbewertung
Fronius Fehlercode-Liste: Bedeutung und Problemlösungen für Fronius-Wechselrichter
Instandhaltung
WhatsApp für Linux: Installation, Einrichtung und Nutzung
Fehlerbehebung
Linux auf dem Mac installieren: Ein Schritt-für-Schritt-Tutorial
Technische Anleitungen
Linux auf Tablets: Schritt-für-Schritt-Anleitung zum Installieren und Verwenden
Sicherheit
MX Linux herunterladen: Dein umfassender Leitfaden zur Installation
Fehlerbehebung
SMB-Freigabe in Linux mounten: Schritt-für-Schritt-Anleitung
Open Source
Hoymiles HM-800: Schritt-für-Schritt-Anleitung zur WLAN-Verbindung
Fehlerbehebung