Effektives Auffinden von Dateien nach Namen unter Linux
Linux-Befehl 'find' zum Auffinden von Dateien nach Namen
Der Befehl "find" ist ein leistungsstarkes Werkzeug in Linux, mit dem du Dateien anhand verschiedener Kriterien suchen kannst, darunter auch anhand ihres Namens. "find" durchsucht rekursiv ein Verzeichnis und seine Unterverzeichnisse nach Dateien, die den angegebenen Kriterien entsprechen. Hier erfährst du, wie du "find" verwendest, um Dateien nach Namen zu finden:
Syntax von "find" für die Namenssuche
Die Syntax von "find" für die Namenssuche lautet:
find [Suchoptionen] [Suchkriterien] [Aktionen]
Suchkriterien für Dateinamen
Zum Suchen von Dateien nach Namen verwendest du das Suchkriterium -name gefolgt vom Namen oder einem Muster des Namens der gesuchten Datei. Beispielsweise sucht der folgende Befehl nach einer Datei mit dem genauen Namen "Datei.txt":
find -name Datei.txt
Teilübereinstimmungen und Platzhalter
Du kannst auch nach Teilübereinstimmungen in Dateinamen suchen. Verwende dazu den Operator -iname anstelle von -name. Du kannst auch Platzhalter wie * (beliebige Zeichenfolge) und ? (genau ein Zeichen) verwenden. Beispielsweise sucht der folgende Befehl nach Dateien, die mit "Datei" beginnen:
find -iname 'Datei*'
Einschränken des Suchbereichs
Standardmäßig durchsucht "find" alle Verzeichnisse im aktuellen Arbeitsverzeichnis. Du kannst den Suchbereich jedoch mit der Option -path einschränken. Beispielsweise durchsucht der folgende Befehl nur das Verzeichnis "/tmp/":
find -path '/tmp/*' -name 'Datei.txt'
Sonderzeichen in Dateinamen
Wenn der Dateiname Sonderzeichen wie Leerzeichen oder Anführungszeichen enthält, musst du ihn in Anführungszeichen setzen. Beispielsweise sucht der folgende Befehl nach einer Datei mit dem Namen "Dokument mit Leerzeichen.txt":
find -name "Dokument mit Leerzeichen.txt"
Suche nach Groß- und Kleinschreibung
Standardmäßig ignoriert "find" die Groß- und Kleinschreibung bei der Namenssuche. Um zwischen Groß- und Kleinschreibung zu unterscheiden, verwende die Option -nocase. Beispielsweise sucht der folgende Befehl nach einer Datei mit dem genauen Namen "DATEI.TXT":
find -name -nocase 'DATEI.TXT'
Verwendung der Syntax von 'find' für die Namenssuche
Die Grundsyntax von 'find' zum Suchen von Dateien nach Namen lautet:
find [Optionen] [Pfad] [Ausdruck]
Dabei ist:
-
Optionen: Optionale Flags, die das Suchverhalten beeinflussen, z. B.
-name,-inameund-regex. - Pfad: Das Verzeichnis oder die Verzeichnisse, in denen du suchen möchtest.
- Ausdruck: Der Suchbegriff, der den Dateinamen angibt.
Suche nach exakten Übereinstimmungen
Um nach Dateien zu suchen, die genau mit einem bestimmten Namen übereinstimmen, verwende die Option -name. Beispiel:
find /home/benutzer -name datei.txt
Dieser Befehl sucht im Verzeichnis /home/benutzer nach der Datei datei.txt.
Suche nach Teilübereinstimmungen
Um nach Dateien zu suchen, die eine Teilzeichenfolge im Namen enthalten, verwende die Option -iname. Beispiel:
find /home/benutzer -iname "*datei*"
Dieser Befehl sucht im Verzeichnis /home/benutzer nach allen Dateien, deren Name die Zeichenfolge "datei" enthält.
Groß- und Kleinschreibung beachten
Standardmäßig ignoriert 'find' die Groß- und Kleinschreibung. Um nach Dateien mit exakter Groß- und Kleinschreibung zu suchen, verwende die Option -namec oder -inamec. Beispiel:
find /home/benutzer -namec "Datei.txt"
Dieser Befehl sucht im Verzeichnis /home/benutzer nach der Datei "Datei.txt" und unterscheidet dabei zwischen Groß- und Kleinschreibung.
Suche nach exakten Übereinstimmungen oder Teilübereinstimmungen
Bei der Suche nach Dateien nach Namen kannst du nach exakten Übereinstimmungen oder Teilübereinstimmungen suchen.
Exakte Übereinstimmungen
Um nach einem exakten Dateinamen zu suchen, verwende die Option -name. Beispielsweise sucht der folgende Befehl nach der Datei "myfile.txt":
find / -name myfile.txt
Teilübereinstimmungen
Um nach Teilübereinstimmungen zu suchen, verwende die Option -iname. Beispielsweise sucht der folgende Befehl nach allen Dateien, die die Zeichenfolge "myfile" im Namen enthalten:
find / -iname *myfile*
Wenn du bei der Teilübereinstimmung nach Groß- und Kleinschreibung suchen möchtest, verwende die Option -regex. Beispielsweise sucht der folgende Befehl nach Dateien, die mit "myfile" beginnen:
find / -regex "^myfile.*"
Einschränken der Suche auf bestimmte Verzeichnisse oder Dateitypen
Du kannst die Suche mit dem Befehl find auf bestimmte Verzeichnisse oder Dateitypen eingrenzen, um die Ergebnisse zu verfeinern.
Suche in bestimmten Verzeichnissen
Um die Suche auf ein bestimmtes Verzeichnis einzugrenzen, verwende die Option -path. Gib den vollständigen Pfad zum Verzeichnis an, inklusive einem nachgestellten Schrägstrich /.
find /home/benutzername -path /home/benutzername/Dokumente
Diese Suche würde nur Dateien im Verzeichnis /home/benutzername/Dokumente und seinen Unterverzeichnissen zurückgeben.
Suche nach bestimmten Dateitypen
Um die Suche auf bestimmte Dateitypen einzuschränken, verwende die Option -type. Du kannst aus folgenden Dateitypen auswählen:
-
f- reguläre Datei -
d- Verzeichnis -
l- symbolischer Link -
s- Socket -
p- Pipe
Um beispielsweise nach Textdateien zu suchen, würdest du Folgendes eingeben:
find /home/benutzername -type f -name *.txt
Diese Suche würde alle Textdateien mit der Endung .txt im Verzeichnis /home/benutzername zurückgeben.
Verwendung von Platzhaltern für dynamische Suchen
Platzhalter sind eine leistungsstarke Funktion, die dir hilft, deine Suche flexibel zu gestalten. Sie ermöglichen es dir, eine Vielzahl von Dateinamen mit einem einzigen Befehl zu finden.
Der Platzhalter '*'
Der Platzhalter * steht für eine beliebige Anzahl von Zeichen in einem Dateinamen. Du kannst ihn verwenden, um nach Dateien mit einem bestimmten Präfix oder Suffix zu suchen. Beispielsweise findet der Befehl find /home/benutzer -name '*.txt' alle Dateien im Verzeichnis /home/benutzer, die mit der Endung .txt enden.
Der Platzhalter '?'
Der Platzhalter ? steht für genau ein Zeichen in einem Dateinamen. Er ist nützlich für die Suche nach Dateien mit einem unbekannten Zeichen. Beispielsweise findet der Befehl find /home/benutzer -name 'datei??.txt' alle Dateien im Verzeichnis /home/benutzer, die den Namen "datei" und zwei unbekannte Zeichen vor der Endung .txt haben.
Kombination von Platzhaltern
Du kannst Platzhalter kombinieren, um komplexe Suchen durchzuführen. Beispielsweise findet der Befehl find /home/benutzer -name '*[0-9]*' alle Dateien im Verzeichnis /home/benutzer, die eine Zahl im Dateinamen enthalten.
Tipps zur Verwendung von Platzhaltern
- Verwende Platzhalter sparsam, da sie die Suche verlangsamen können.
- Verwende Anführungszeichen um Suchbegriffe mit Platzhaltern, um Verwechslungen mit Shell-Expansionen zu vermeiden.
- Beachte, dass Platzhalter keine Verzeichnisse finden. Verwende den Befehl
-type dzusammen mit Platzhaltern, um Verzeichnisse zu finden.
Suche nach Dateien mit Groß- und Kleinschreibung
Beim Auffinden von Dateien nach Namen mit find kannst du angeben, ob die Groß- und Kleinschreibung beachtet werden soll oder nicht.
Exakte Übereinstimmungen mit Groß- und Kleinschreibung
Um nach Dateien zu suchen, die exakt mit einem bestimmten Namen, einschließlich Groß- und Kleinschreibung, übereinstimmen, verwendest du die Option -name.
find /verzeichnis -name "DateiName"
Diese Suche findet z. B. die Datei DateiName, aber nicht dateiname oder DATEINAME.
Teilübereinstimmungen mit Groß- und Kleinschreibung
Wenn du nach Dateien suchen möchtest, die einen bestimmten Teilstring im Namen enthalten, aber nicht unbedingt mit exakter Groß- und Kleinschreibung übereinstimmen, verwendest du die Option -iname.
find /verzeichnis -iname "teilzeichen"
Diese Suche würde z. B. sowohl Teilzeichen als auch TEILZEICHEN finden.
Berücksichtigung der Groß- und Kleinschreibung bei der Suche
Standardmäßig beachtet find keine Groß- und Kleinschreibung. Wenn du die Groß- und Kleinschreibung jedoch beachten möchtest, kannst du die Option -cs oder -csf verwenden.
find /verzeichnis -cs -name "DateiName"
Diese Suche findet nur Dateien mit dem genauen Namen DateiName.
find /verzeichnis -csf -name "DateiName"
Diese Suche findet nur Dateien, deren Name mit DateiName beginnt.
Suche nach Dateien mit Sonderzeichen im Namen
Wenn du nach Dateien suchst, die Sonderzeichen in ihrem Namen enthalten, wie z. B. Leerzeichen, Bindestriche oder Punkte, musst du die Syntax von find anpassen.
Verwendung von Escape-Zeichen
Um Sonderzeichen in der Namenssuche zu verwenden, musst du ihnen ein Escape-Zeichen voranstellen. Das Escape-Zeichen ist der Backslash \.
Beispiel: Um nach einer Datei mit dem Namen "Meine Datei.txt" zu suchen, verwendest du folgenden Befehl:
find / -name "Meine\ Datei.txt"
Behandlung von Leerzeichen
Leerzeichen in Dateinamen stellen eine besondere Herausforderung dar, da sie die Befehlsargumente trennen. Um Leerzeichen in der Namenssuche zu handhaben, kannst du Folgendes tun:
- Einfache Anführungszeichen verwenden:
find / -name 'Meine Datei.txt' - Den Befehl
xargsverwenden:find / -name Meine\ Datei.txt | xargs echo
Überlegungen
- Du musst die Escape-Zeichen korrekt platzieren. Fehlen sie oder sind sie falsch platziert, führt dies zu Fehlern.
- Denke daran, dass Escape-Zeichen auch in anderen Teilen des Befehls erforderlich sein können, z. B. bei der Angabe von Verzeichnispfaden.
- Platzhalter (* und ?) können auch bei der Suche nach Dateien mit Sonderzeichen verwendet werden. Verwende jedoch Escape-Zeichen, um sicherzustellen, dass sie nicht als Shell-Metazeichen interpretiert werden.
Suchen und Auflisten der gefundenen Dateien
Nachdem du deine Suche durchgeführt hast, möchtest du dir die gefundenen Dateien ansehen. Mit dem find-Befehl kannst du die Dateien auflisten lassen.
Auflisten aller gefundenen Dateien
Um alle gefundenen Dateien aufzulisten, verwende die Option -ls (long listing). Diese Option zeigt detaillierte Informationen zu jeder Datei an, wie Dateiname, Größe, Datum der letzten Änderung und Berechtigungen.
find /home -name "*.txt" -ls
Nur Dateinamen auflisten
Wenn du nur die Dateinamen der gefundenen Dateien anzeigen möchtest, verwende die Option -print. Diese Option gibt die Dateinamen als einzelne Zeilen aus.
find /home -name "*.txt" -print
Suchen und Auflisten von Dateien in einem bestimmten Verzeichnis
Du kannst die Suche auf ein bestimmtes Verzeichnis beschränken, indem du die Option -path verwendest. Dies ist hilfreich, wenn du nur Dateien in einem bestimmten Unterverzeichnis finden möchtest.
find /home -path "/home/user/Dokumente/*.txt" -print
Suchen und Auflisten von Dateien nach Größe
Du kannst auch nach Dateien mit einer bestimmten Größe suchen, indem du die Optionen -size oder -size verwendest. -size nimmt einen numerischen Wert gefolgt von einem Größenbezeichner (k für Kilobyte, M für Megabyte usw.) an. -size hingegen vergleicht die Dateigröße mit einem Wert, der in Blöcken angegeben wird (jeder Block ist 512 Byte groß).
find /home -size 100k -print
find /home -size +10M -print
Suchen und Ausführen von Aktionen für die gefundenen Dateien
Sobald du die gewünschten Dateien gefunden hast, kannst du verschiedene Aktionen für sie ausführen.
Aktionen auf einzelne Dateien anwenden
Mit dem Befehl find kannst du einzelne Aktionen auf jede gefundene Datei anwenden. Dies kann mit der Option -exec geschehen, gefolgt vom auszuführenden Befehl und einem Semikolon (;). Beispielsweise kannst du die Größen aller gefundenen Dateien mit dem Befehl -exec ls -l {} + anzeigen:
find / -name "dateiname" -exec ls -l {} +
Aktionen auf mehrere Dateien gleichzeitig anwenden
Wenn du eine Aktion auf mehrere Dateien gleichzeitig anwenden möchtest, kannst du die Option -print0 in Kombination mit dem Hilfsmittel xargs verwenden. Dies ist besonders nützlich für Befehle, die mehrere Argumente akzeptieren. Beispielsweise kannst du mit dem Befehl -print0 -exec xargs -0 rm alle gefundenen Dateien löschen:
find / -name "dateiname" -print0 -exec xargs -0 rm {}
Skripte für komplexe Aktionen verwenden
Für komplexere Aktionen kannst du ein Skript schreiben und es mit der Option -exec aufrufen. Dies ermöglicht es dir, benutzerdefinierte Aktionen auszuführen, z. B. das Verschieben von Dateien an einen bestimmten Speicherort oder das Ändern ihrer Berechtigungen. Beispielsweise kannst du das folgende Skript move_files.sh erstellen:
#!/bin/bash
mv "$1" /zielverzeichnis
Und es dann mit dem Befehl -exec aufrufen:
find / -name "dateiname" -exec ./move_files.sh {} +
Verwendung externer Tools
Neben den integrierten Optionen von find kannst du auch externe Tools wie grep, sed und awk verwenden, um die gefundenen Dateien zu verarbeiten und Aktionen auszuführen. Dies kann hilfreich sein, wenn du komplexe Such- oder Verarbeitungsoperationen durchführen möchtest.
Beispielsweise kannst du den Befehl grep verwenden, um nach bestimmten Mustern im Inhalt der gefundenen Dateien zu suchen:
find / -name "dateiname" -exec grep "suchmuster" {} +
Neue Beiträge
Wine auf Linux Mint: Eine ausführliche Anleitung zur Installation und Konfiguration
Open Source
So reparieren Sie Linux Mint: Eine umfassende Anleitung
Häufige Probleme und Lösungen
iCloud auf Linux: Eine Anleitung zur Nutzung des Apple-Cloud-Dienstes auf Linux-Systemen
Anleitungen
Die besten Sprüche für Gästebücher: Kreative Ideen für unvergessliche Einträge
Kreatives Schreiben
Witzige Sprüche für die goldene Hochzeit
Humor
Einfühlsame Geburtstagswünsche für kranke Menschen
Inspiration
Die Flächenformeln für Umfang: Ein detaillierter Leitfaden
Bildung
Die Formel für den Umfang eines Rechtecks: Alles, was Sie wissen müssen
Bildung
Fläche und Umfang eines Kreises berechnen: Ein praktischer Leitfaden
Bildung
Autokennzeichen RW: Bedeutung und Informationen
Bedeutung von Autokennzeichen
Beliebte Beiträge
Linux auf dem iPad installieren: Schritt-für-Schritt-Anleitung
DIY-Projekte
Zurücksetzen von Linux Mint: Schritt-für-Schritt-Anleitung
Anleitungen
Wine auf Linux Mint: Eine ausführliche Anleitung zur Installation und Konfiguration
Open Source
Linux Mint AppImages: Mühelose Installation und Ausführung von Anwendungen
Open Source
Linux-Tastatur einfach und schnell umstellen: Eine Schritt-für-Schritt-Anleitung
Produktivität
MX Linux installieren: Eine Schritt-für-Schritt-Anleitung für Anfänger
Fehlerbehebung
Linux Mint: WLAN mühelos einrichten
Open Source
Kaspersky Linux: Schutz und Sicherheit für Red Hat und Ubuntu
IT-Sicherheit
Miracast auf Linux: Streamen Sie Ihren Bildschirm kabellos
Technologie
CrystalDiskInfo für Linux: Überwachen Sie die Gesundheit Ihrer Festplatten
Open Source