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
PATTERN
entsprechen. -
-iname PATTERN Sucht nach Verzeichnissen, die dem Muster
PATTERN
entsprechen, wobei die Groß-/Kleinschreibung ignoriert wird. -
-path PATTERN Sucht nach Verzeichnissen, deren Pfad dem Muster
PATTERN
entspricht. - -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.
MODUS
kann entweder eine oktale Zahl oder ein Buchstabenkürzel für die Berechtigungen sein (z. B.u+rwx
fü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
-exec
anstelle von-print0 | xargs
verwenden, um den Befehlfind
direkt für jedes übereinstimmende Verzeichnis auszuführen. - Die Option
-maxdepth
kann verwendet werden, um die Tiefe der Suche zu begrenzen. - Die Option
-mindepth
kann 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 Posts
Der WPS PIN: Dein Tor zu Wi-Fi-Sicherheit und -Komfort
Cybersecurity
FRITZ!Box 7590: So beheben Sie einen defekten WLAN-Chip
Produktbewertung
Die besten Überwachungskamera-Apps: Schützen Sie Ihr Zuhause jederzeit und überall
Technologie
login.wifionice.db: Verstehen und Beheben von Verbindungsproblemen
Fehlerbehebung
Clear Linux: Ein performantes und sicheres Betriebssystem für Cloud und Desktop
Sicherheit
Asahi Linux: Debian-Distribution für Apple-Silicon-Macs
Technologie und Innovation
Du Sort By Size: Sortiere Deine Daten effektiv für bessere Entscheidungen
Effizienzsteigerung
PDF24 für Linux: Erstellen, Bearbeiten und Bearbeiten von PDFs unter Linux
Open Source
WLAN dBm-Tabelle: Signalstärke verstehen und Netzwerkprobleme beheben
Fehlerbehebung
Hoymiles HM-800: Schritt-für-Schritt-Anleitung zur WLAN-Verbindung
Fehlerbehebung
Beliebte Posts
Der WPS PIN: Dein Tor zu Wi-Fi-Sicherheit und -Komfort
Cybersecurity
FRITZ!Box 7590: So beheben Sie einen defekten WLAN-Chip
Produktbewertung
Die besten Überwachungskamera-Apps: Schützen Sie Ihr Zuhause jederzeit und überall
Technologie
login.wifionice.db: Verstehen und Beheben von Verbindungsproblemen
Fehlerbehebung
Clear Linux: Ein performantes und sicheres Betriebssystem für Cloud und Desktop
Sicherheit
Asahi Linux: Debian-Distribution für Apple-Silicon-Macs
Technologie und Innovation
Du Sort By Size: Sortiere Deine Daten effektiv für bessere Entscheidungen
Effizienzsteigerung
PDF24 für Linux: Erstellen, Bearbeiten und Bearbeiten von PDFs unter Linux
Open Source
WLAN dBm-Tabelle: Signalstärke verstehen und Netzwerkprobleme beheben
Fehlerbehebung
Hoymiles HM-800: Schritt-für-Schritt-Anleitung zur WLAN-Verbindung
Fehlerbehebung