Verzeichnis in Linux finden: So funktioniert's ganz einfach
Was ist der Befehl 'find' und wofür wird er verwendet?
Der Befehl find ist ein leistungsstarkes Tool in Linux, mit dem du nach Dateien und Verzeichnissen auf deinem System suchen kannst. Er bietet eine Vielzahl von Optionen und Parametern, mit denen du die Suche nach deinen spezifischen Anforderungen anpassen kannst.
Egal, ob du versuchst, eine verlegte Datei aufzuspüren oder Verzeichnisse mit bestimmten Merkmalen zu identifizieren, der Befehl find ist dein zuverlässiger Verbündeter. Hier sind einige gängige Verwendungsfälle:
Nach verlorenen Dateien suchen
Stell dir vor, du verlierst eine wichtige Datei und erinnerst dich nicht mehr an ihren Namen oder Speicherort. Mit find kannst du das gesamte System nach Dateien durchsuchen, die bestimmte Kriterien erfüllen, wie z. B. einen Teil des Dateinamens oder den letzten Änderungszeitpunkt.
Verzeichnisse verwalten
find ist auch ein wertvolles Werkzeug für die Verwaltung deiner Verzeichnisse. Du kannst damit nach Verzeichnissen mit bestimmten Namen suchen, die leer sind, versteckte Dateien enthalten oder bestimmten Berechtigungen entsprechen. So kannst du deine Verzeichnisstruktur optimieren und unnötige Dateien entfernen.
Syntax und Optionen des Befehls 'find'
Die Syntax des Befehls 'find' ist wie folgt:
find [Pfad] [Optionen] [Ausdrücke]
Dabei ist:
-
[Pfad]: Das Verzeichnis, in dem du nach Verzeichnissen suchen möchtest. -
[Optionen]: Optionale Parameter, die das Suchverhalten anpassen. -
[Ausdrücke]: Kriterien, die Verzeichnisse identifizieren, nach denen du suchst.
Wichtige Optionen
Es gibt eine Vielzahl von Optionen, die du verwenden kannst, um deine Suche anzupassen. Zu den wichtigsten gehören:
-
-name PATTERN Sucht nach Verzeichnissen, die dem Muster
PATTERNentsprechen. -
-iname PATTERN Sucht nach Verzeichnissen, die dem Muster
PATTERNentsprechen, wobei die Groß-/Kleinschreibung ignoriert wird. -
-path PATTERN Sucht nach Verzeichnissen, deren Pfad dem Muster
PATTERNentspricht. - -type d Sucht nur nach Verzeichnissen.
-
-maxdepth N Begrenzt die Suche auf die angegebene Tiefe
N. -
-mindepth N Startet die Suche erst ab der angegebenen Tiefe
N. -
-perm MODUS Sucht nach Verzeichnissen mit den angegebenen Berechtigungsmodi.
MODUSkann entweder eine oktale Zahl oder ein Buchstabenkürzel für die Berechtigungen sein (z. B.u+rwxfür Leseberechtigung für den Besitzer). - -group GRUPPE Sucht nach Verzeichnissen, die der angegebenen Gruppe gehören.
- -user BENUTZER Sucht nach Verzeichnissen, die dem angegebenen Benutzer gehören.
- -hidden Sucht nach versteckten Verzeichnissen (Verzeichnisse, die mit einem Punkt beginnen).
Verwenden von Ausdrücken
Du kannst mehrere Ausdrücke verwenden, um deine Suche zu verfeinern. Ausdrücke werden mit logischen Operatoren wie -a (UND), -o (ODER) und ! (NICHT) kombiniert.
Beispiel:
find /home -name "Dokumente" -a -type d
Diese Suche findet alle Verzeichnisse mit dem Namen "Dokumente" unter dem Pfad "/home".
Nach Verzeichnissen mit einem bestimmten Namen suchen
Möchtest du ein Verzeichnis mit einem bestimmten Namen finden? Nichts leichter als das!
Suche nach einem exakten Verzeichnisnamen
Um nach einem Verzeichnis mit einem exakten Namen zu suchen, verwende die folgende Syntax:
find [startverzeichnis] -name "verzeichnisname"
Beispiel:
find /home -name "Dokumente" # Sucht nach dem Verzeichnis "Dokumente" im Verzeichnis "/home"
Suche nach einem Verzeichnisnamen, der ein Muster enthält
Möchtest du nach einem Verzeichnis suchen, dessen Name ein bestimmtes Muster enthält? Verwende dann die Option -name mit dem Muster als Argument:
find [startverzeichnis] -name "*muster*"
Beispiel:
find /home -name "*Dokumente*" # Sucht nach Verzeichnissen, die "Dokumente" im Namen enthalten
Umkehrsuche: Suche nach Verzeichnissen, die NICHT einen bestimmten Namen haben
Mithilfe der Option -prune kannst du eine Umkehrsuche durchführen und nach Verzeichnissen suchen, die NICHT einen bestimmten Namen haben:
find [startverzeichnis] -prune -o -name "verzeichnisname"
Beispiel:
find /home -prune -o -name "*Dokumente*" # Sucht nach Verzeichnissen, die NICHT "Dokumente" im Namen enthalten
Nach Verzeichnissen suchen, die eine bestimmte Bedingung erfüllen
Über den Befehl find kannst du auch nach Verzeichnissen suchen, die eine bestimmte Bedingung erfüllen. Dies ist sehr nützlich, wenn du nach Verzeichnissen mit bestimmten Eigenschaften suchst, z. B. solchen, die bestimmte Dateien enthalten oder eine bestimmte Größe haben.
Nach Verzeichnissen suchen, die eine bestimmte Datei enthalten
Um nach Verzeichnissen zu suchen, die eine bestimmte Datei enthalten, verwende die Option -name zusammen mit dem Dateinamen. Beispielsweise sucht der folgende Befehl nach Verzeichnissen, die die Datei myfile.txt enthalten:
find / -name myfile.txt -type d
Nach Verzeichnissen mit einer bestimmten Größe suchen
Um nach Verzeichnissen mit einer bestimmten Größe zu suchen, verwende die Option -size. Du kannst die Größe in Bytes, Kilobytes (K) oder Megabytes (M) angeben. Beispielsweise sucht der folgende Befehl nach Verzeichnissen, die größer als 100 Kilobytes sind:
find / -size +100K -type d
Nach Verzeichnissen suchen, die eine bestimmte Berechtigungsstufe haben
Um nach Verzeichnissen mit einer bestimmten Berechtigungsstufe zu suchen, verwende die Option -perm. Du kannst die Berechtigungsstufe in oktaler Notation (z. B. 644) oder mit der symbolischen Notation (z. B. rwxr-xr-x) angeben. Beispielsweise sucht der folgende Befehl nach Verzeichnissen, die für alle Benutzer lesbar sind:
find / -perm -444 -type d
Weitere Bedingungen
Neben diesen grundlegenden Bedingungen kannst du auch nach Verzeichnissen suchen, die einer bestimmten Gruppe oder einem bestimmten Benutzer gehören, versteckte Verzeichnisse sind oder nach ihrem Erstellungs- oder Änderungsdatum. Die Möglichkeiten sind nahezu unbegrenzt.
Denke daran, dass du mehrere Bedingungen kombinieren kannst, um deine Suche noch spezifischer zu gestalten. Experimentiere mit den verschiedenen Optionen und finde heraus, wie du find für deine spezifischen Anforderungen nutzen kannst.
Nach Verzeichnissen innerhalb einer bestimmten Tiefe suchen
Oftmals benötigst du lediglich Verzeichnisse, die sich innerhalb einer bestimmten Verschachtelungstiefe befinden. Der Befehl find bietet dir auch dafür eine Option.
Maximale Tiefe angeben
Um die maximale Tiefe anzugeben, verwendest du die Option -maxdepth.
Syntax:
find [Pfad] -maxdepth [Tiefe]
Beispiel:
find / -maxdepth 2
Dieser Befehl sucht nach Verzeichnissen unterhalb des Stammverzeichnisses /, die sich innerhalb von zwei Ebenen befinden.
Minimale Tiefe angeben
Andererseits kannst du auch die minimale Tiefe angeben. Verzeichnisse, die sich oberhalb dieser Tiefe befinden, werden ignoriert.
Option: -mindepth
Syntax:
find [Pfad] -mindepth [Tiefe]
Beispiel:
find / -mindepth 3
Dieser Befehl sucht nach Verzeichnissen unterhalb des Stammverzeichnisses, die sich mindestens in der dritten Ebene befinden.
Maximale und minimale Tiefe kombinieren
Du kannst auch die minimale und maximale Tiefe kombinieren, um die Suche auf einen bestimmten Bereich zu beschränken.
Syntax:
find [Pfad] -mindepth [Min. Tiefe] -maxdepth [Max. Tiefe]
Beispiel:
find / -mindepth 2 -maxdepth 4
Dieser Befehl sucht nach Verzeichnissen unterhalb des Stammverzeichnisses, die sich zwischen der zweiten und vierten Ebene befinden.
Nach Verzeichnissen mit bestimmten Berechtigungen suchen
Wenn du nach Verzeichnissen suchen möchtest, die bestimmte Berechtigungen haben, kannst du die Option -perm verwenden. Diese Option akzeptiert ein numerisches Argument, das die Oktalberechtigung darstellt, nach der du suchen möchtest.
Wie kann ich nach Verzeichnissen mit Lese-, Schreib- und Ausführungsberechtigungen suchen?
Um beispielsweise nach Verzeichnissen mit Lese-, Schreib- und Ausführungsberechtigungen für den Dateibesitzer (chmod 700) zu suchen, würdest du folgenden Befehl verwenden:
find / -type d -perm 700
Wie kann ich nach Verzeichnissen mit Gruppen-Schreibrechten suchen?
Du kannst auch nach Verzeichnissen suchen, die bestimmte Gruppenrechte haben. Um beispielsweise nach Verzeichnissen mit Schreibrechten für die Gruppe zu suchen, würdest du folgenden Befehl verwenden:
find / -type d -perm -g=w
Wie kann ich nach Verzeichnissen mit anderen Berechtigungen suchen?
Du kannst auch nach Verzeichnissen mit anderen Berechtigungen suchen, z. B. nach schreibgeschützten Verzeichnissen oder nach Verzeichnissen, auf die alle Benutzer zugreifen können. Hier sind einige Beispiele:
- Um nach schreibgeschützten Verzeichnissen zu suchen, verwende die Option
-perm -w-w-w:
find / -type d -perm -w-w-w
- Um nach Verzeichnissen zu suchen, auf die alle Benutzer zugreifen können, verwende die Option
-perm -a=rwx:
find / -type d -perm -a=rwx
Indem du die Option -perm verwendest, kannst du nach Verzeichnissen mit beliebiger Kombination von Berechtigungen suchen. Dies kann nützlich sein, um Verzeichnisse zu finden, die möglicherweise falsch konfiguriert sind oder die Sicherheitsrisiken darstellen.
Nach Verzeichnissen suchen, die einer bestimmten Gruppe oder einem bestimmten Benutzer gehören
Oftmals musst du nur nach Verzeichnissen suchen, die einer bestimmten Gruppe oder einem bestimmten Benutzer gehören. Mit dem Befehl find kannst du diese Suche einfach durchführen.
Nach Verzeichnissen suchen, die einer bestimmten Gruppe gehören
Um nach Verzeichnissen zu suchen, die einer bestimmten Gruppe gehören, verwendest du die Option -group.
find / -group <gruppenname>
Beispielsweise suchst du nach Verzeichnissen, die der Gruppe marketing gehören:
find / -group marketing
Nach Verzeichnissen suchen, die einem bestimmten Benutzer gehören
Um nach Verzeichnissen zu suchen, die einem bestimmten Benutzer gehören, verwendest du die Option -user.
find / -user <benutzername>
Beispielsweise suchst du nach Verzeichnissen, die dem Benutzer john gehören:
find / -user john
Nach versteckten Verzeichnissen suchen
Versteckte Verzeichnisse sind Ordner, die mit einem Punkt (.) beginnen und dadurch im Dateimanager und bei der Ausführung des Befehls "ls" standardmäßig nicht angezeigt werden. Diese Option dient dazu, wichtige Systemdateien und Konfigurationsdateien vor versehentlichen Änderungen zu schützen.
Verwendung des Schalters -type
Zum Suchen nach versteckten Verzeichnissen kannst du den Schalter -type zusammen mit dem Argument d verwenden, der angibt, dass du nach Verzeichnissen suchst. So kannst du beispielsweise den folgenden Befehl ausführen:
find /home -type d -name '.*'
Dieser Befehl durchsucht das Verzeichnis /home und alle seine Unterverzeichnisse nach Verzeichnissen, die mit einem Punkt beginnen.
Verwendung des Schalters -exec
Alternativ kannst du den Schalter -exec verwenden, um einen Befehl auszuführen, wenn ein Kriterium erfüllt ist. Im folgenden Beispiel wird der Befehl ls -ld ausgeführt, um die Details versteckter Verzeichnisse auszugeben:
find /home -type d -name '.*' -exec ls -ld '{}' \;
Berücksichtigung versteckter Verzeichnisse in anderen Befehlen
Beachte, dass versteckte Verzeichnisse in den meisten Befehlen standardmäßig nicht berücksichtigt werden. Um sie einzuschließen, musst du den Schalter -a (alle) verwenden. Beispielsweise:
ls -a /home
Dies gibt sowohl reguläre als auch versteckte Verzeichnisse im Verzeichnis /home aus.
Nach Verzeichnissen anhand ihres Inhalts suchen
Manchmal musst du Verzeichnisse finden, die bestimmte Inhalte enthalten. Dies kann hilfreich sein, wenn du nach bestimmten Dateien suchst oder wenn du Verzeichnisse bereinigen möchtest, die unnötigen Speicherplatz belegen.
Um Verzeichnisse anhand ihres Inhalts zu suchen, kannst du die Option -print0 zusammen mit dem Befehl xargs verwenden.
-print0 Option
Die Option -print0 bewirkt, dass find den Pfad jedes übereinstimmenden Verzeichnisses mit einem Nullbyte (\0) beendet. Dies ist nützlich, wenn die Pfade Leerzeichen enthalten, da Leerzeichen sonst den Befehl xargs verwirren würden.
Befehl xargs
Der Befehl xargs liest Standardinput zeilenweise ein und führt einen angegebenen Befehl für jede Zeile aus. In diesem Fall verwenden wir xargs um die Pfade aus dem Befehl find als Argumente für den Befehl find zu übergeben.
Beispiel
Um beispielsweise nach Verzeichnissen zu suchen, die die Datei example.txt enthalten, kannst du den folgenden Befehl verwenden:
find . -type d -print0 | xargs -0 find -name example.txt
Dieser Befehl sucht rekursiv im aktuellen Verzeichnis (-type d) nach Verzeichnissen (-name example.txt) mit dem Namen example.txt. Die Option -0 bewirkt, dass xargs die aus find übergebenen Pfade mit einem Nullbyte beendet, und die Option -print0 bewirkt, dass find die Pfade mit einem Nullbyte beendet.
Du kannst die Option -print0 auch mit anderen Befehlen verwenden, um Verzeichnisse anhand ihres Inhalts zu suchen. Beispielsweise kannst du die Option -regex verwenden, um nach Verzeichnissen zu suchen, die einem bestimmten regulären Ausdruck entsprechen.
Zusätzliche Tipps
- Du kannst die Option
-execanstelle von-print0 | xargsverwenden, um den Befehlfinddirekt für jedes übereinstimmende Verzeichnis auszuführen. - Die Option
-maxdepthkann verwendet werden, um die Tiefe der Suche zu begrenzen. - Die Option
-mindepthkann verwendet werden, um die Mindesttiefe der Suche anzugeben.
Nach Verzeichnissen anhand ihres Erstellungs- oder Änderungsdatums suchen
Du kannst den Befehl find verwenden, um Verzeichnisse anhand ihres Erstellungs- oder Änderungsdatums zu suchen. Dies kann hilfreich sein, wenn du nach Verzeichnissen suchst, die zu einem bestimmten Zeitpunkt erstellt oder geändert wurden.
Erstellungsdatum
Um nach Verzeichnissen zu suchen, die an einem bestimmten Datum erstellt wurden, verwende die Option -ctime. Diese Option gibt die Anzahl der Tage an, die seit der Erstellung des Verzeichnisses vergangen sind.
find / -ctime 0 -type d
Dieser Befehl sucht nach allen Verzeichnissen im Root-Verzeichnis, die heute erstellt wurden.
Änderungsdatum
Um nach Verzeichnissen zu suchen, die an einem bestimmten Datum geändert wurden, verwende die Option -mtime. Diese Option gibt die Anzahl der Tage an, die seit der Änderung des Verzeichnisses vergangen sind.
find / -mtime 0 -type d
Dieser Befehl sucht nach allen Verzeichnissen im Root-Verzeichnis, die heute geändert wurden.
Zwischen zwei Datumsangaben suchen
Du kannst auch nach Verzeichnissen suchen, die zwischen zwei Datumsangaben erstellt oder geändert wurden. Verwende dazu die Optionen -newer und -older.
find / -newer datei -type d
Dieser Befehl sucht nach allen Verzeichnissen im Root-Verzeichnis, die neuer als die angegebene Datei sind.
find / -older datei -type d
Dieser Befehl sucht nach allen Verzeichnissen im Root-Verzeichnis, die älter als die angegebene Datei sind.
Beispiele
- Um nach Verzeichnissen zu suchen, die in den letzten 7 Tagen erstellt wurden, verwende folgenden Befehl:
find / -ctime -7 -type d
- Um nach Verzeichnissen zu suchen, die in den letzten 30 Tagen geändert wurden, verwende folgenden Befehl:
find / -mtime -30 -type d
- Um nach Verzeichnissen zu suchen, die zwischen dem 1. Januar 2023 und dem 1. Februar 2023 erstellt wurden, verwende folgenden Befehl:
find / -newer '2023-01-01' -older '2023-02-01' -type d
Umkehrsuche: Nach Verzeichnissen suchen, die eine bestimmte Bedingung NICHT erfüllen
Manchmal möchtest du möglicherweise nach Verzeichnissen suchen, die eine bestimmte Bedingung nicht erfüllen. Dies ist mit dem Befehl find möglich, indem du das Präfix ! vor der Bedingung verwendest.
Verwendung des !-Präfixes
Um nach Verzeichnissen zu suchen, die eine bestimmte Bedingung NICHT erfüllen, verwendest du das Präfix ! vor der Bedingung. Beispielsweise kannst du mit folgendem Befehl nach Verzeichnissen suchen, die nicht den Namen "downloads" haben:
find / -type d -name "downloads"
Verwendung von ! in Kombination mit anderen Optionen
Du kannst das !-Präfix in Kombination mit anderen Optionen des Befehls find verwenden. Beispielsweise kannst du mit folgendem Befehl nach Verzeichnissen suchen, die nicht in einem Unterverzeichnis namens "bin" liegen:
find / -type d -not -path "*/bin/*"
Vermeidung von Überschneidungen mit anderen Abschnitten
Dieser Abschnitt konzentriert sich speziell auf die Umkehrsuche. Bitte beachte, dass die Suche nach Verzeichnissen, die eine bestimmte Bedingung erfüllen, in anderen Abschnitten dieser Gliederung behandelt wird.
Häufig gestellte Fragen:
-
Wie kann ich nach Verzeichnissen suchen, die nicht leer sind?
- Verwende
-not -empty.
- Verwende
-
Wie kann ich nach Verzeichnissen suchen, die kein Schreibzugriffsrecht für Benutzer haben?
- Verwende
-not -perm -0200.
- Verwende
-
Wie kann ich nach Verzeichnissen suchen, die nicht einer bestimmten Gruppe gehören?
- Verwende
-not -group Gruppe.
- Verwende
Durch die Nutzung des !-Präfixes kannst du die Flexibilität des Befehls find erhöhen und die genauen Verzeichnisse finden, die deinen Anforderungen entsprechen.
Neue Beiträge
Linux Mint auf USB-Stick installieren: Schritt-für-Schritt-Anleitung
Open Source
WLAN dBm-Tabelle: Signalstärke verstehen und Netzwerkprobleme beheben
Fehlerbehebung
PDF24 für Linux: Erstellen, Bearbeiten und Bearbeiten von PDFs unter Linux
Open Source
SMB-Freigabe in Linux mounten: Schritt-für-Schritt-Anleitung
Open Source
Linux auf Surface: Eine umfassende Anleitung zur Installation
Produktivität
Zurücksetzen des Hoymiles DTU: Eine umfassende Anleitung
Benutzerhandbuch
WhatsApp für Linux: Installation, Einrichtung und Nutzung
Fehlerbehebung
Hoymiles HM-800: Schritt-für-Schritt-Anleitung zur WLAN-Verbindung
Fehlerbehebung
Linux auf dem Mac installieren: Ein Schritt-für-Schritt-Tutorial
Technische Anleitungen
Threema unter Linux verwenden: So gelingt der Einstieg
Technologie
Beliebte Beiträge
Die ultimative Anleitung zur fstab-Datei: Mounten und Konfigurieren von Dateisystemen
Fehlerbehebung
MX Linux auf Deutsch: Eine umfassende Anleitung
Fehlerbehebung und Support
Office 365 auf Linux: Eine umfassende Anleitung
Sicherheit und Datenschutz
MX Linux herunterladen: Dein umfassender Leitfaden zur Installation
Fehlerbehebung
PDF-Bearbeitung unter Linux: Anleitung und bewährte Verfahren
Open Source
AusweisApp2 für Linux: Digitale Ausweise bequem verwalten
Technologie
Fusion 360 für Linux: Installation, Einrichtung und Tipps
Fehlerbehebung
Linux auf Tablets: Schritt-für-Schritt-Anleitung zum Installieren und Verwenden
Sicherheit
Passwort zurücksetzen und ändern für Deye Wechselrichter: Schritt-für-Schritt-Anleitung
Sicherheit
Linux auf Surface: Eine umfassende Anleitung zur Installation
Produktivität