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
,-iname
und-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 d
zusammen 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
xargs
verwenden: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 Posts
World of Warcraft auf Linux spielen: Eine guide für Abenteurer
Einführung in World of Warcraft
Node.js NVM: Antworten auf die häufigsten Fragen
Entwicklung
Professionelle Gmail-HTML-Signaturen: Erstellen, Gestalten und Nutzen
Marketingstrategien
Die vollständige Anleitung zu poczta wp: Alles, was Sie wissen müssen
Sicherheit und Datenschutz
HTML-Content: Der ultimative Leitfaden zur Erstellung ansprechender Webseiten
SEO-Optimierung
Das HTML-Title-Attribut: Ein Leitfaden zur Optimierung von Titeln für SEO und Benutzerfreundlichkeit
Online-Marketing
HTTP-Statuscodes: Ihre Bedeutung und Verwendung im Web
Einführung in HTTP-Statuscodes
Besucherzähler für Websites: Tracking Ihres Website-Traffics für Erfolg
SEO-Optimierung
Beschleunigen Sie die Dateneingabe mit HTML Datalist
Webentwicklung
HTML in PUG konvertieren: Einfach und schnell gemacht
Webentwicklung
Beliebte Posts
SteamCMD: Der umfassende Leitfaden zur Verwaltung von Steam-Servern
Sicherheitsrichtlinien
POST-Anfragen: Erstellen, Senden und Empfangen von Daten im Web
Webentwicklung
LaTeX: Das mächtige Werkzeug für hochwertiges Dokumentenschreiben
Dokumentenerstellung
Wiederherstellung beschädigter Linux-Dateisysteme mit fsck: Ein umfassender Leitfaden
Fehlerbehebung
Die vollständige Anleitung zu poczta wp: Alles, was Sie wissen müssen
Sicherheit und Datenschutz
Gigacube Admin: Zugang zu den erweiterten Einstellungen Ihres Routers
Fehlerbehebung
Linux Mint Themes: Personalisieren Sie Ihren Desktop
Open Source
TCPdump-Beispiele: Paketakquise und Netzwerkdiagnose
Fehlerbehebung
Mounten von ISO-Images unter Linux: Eine Schritt-für-Schritt-Anleitung
Anleitungen
Linux Open File: Anleitung zum Öffnen, Bearbeiten und Löschen von Dateien aus dem Terminal
Open Source