Linux Terminal: Dateien und Verzeichnisse suchen mit find

Der Befehl find ist eines der leistungsfähigsten Werkzeuge unter Linux, wenn es darum geht, Dateien und Verzeichnisse anhand bestimmter Kriterien zu suchen. Er kann nicht nur nach Namen suchen, sondern auch nach Größe, Änderungsdatum, Dateityp oder Berechtigungen – und sogar Aktionen wie Kopieren oder Löschen ausführen.

In diesem Beitrag sehen wir uns Syntax, Optionen und praxisnahe Beispiele an.


1. Grundlegende Syntax

find PFAD [OPTIONEN] SUCHKRITERIEN [AKTIONEN]
  • PFAD: Startpunkt der Suche (z. B. /home, . für aktuelles Verzeichnis)
  • SUCHKRITERIEN: Name, Größe, Datum, usw.
  • AKTIONEN: z. B. Löschen, Kopieren, Ausführen von Befehlen

Beispiel:

find . -name datei.txt

→ Sucht im aktuellen Verzeichnis nach datei.txt.


2. Nach Dateinamen suchen

  • Exakter Name: find /home/user -name "bericht.txt"
  • Name ohne Beachtung der Groß-/Kleinschreibung: find /home/user -iname "bericht.txt"
  • Muster verwenden (Wildcards): find /home/user -name "*.log"

3. Nach Dateityp suchen

OptionTyp
-type fDatei
-type dVerzeichnis
-type lSymbolischer Link

Beispiele:

find /var/log -type f -name "*.log"
find /home/user -type d -name "Backup"

4. Nach Dateigröße suchen

OptionBedeutung
+100MGrößer als 100 MB
-10MKleiner als 10 MB

Beispiel:

find /home -size +500M

→ Alle Dateien größer als 500 MB.


5. Nach Änderungsdatum suchen

OptionBedeutung
-mtime -7In den letzten 7 Tagen geändert
-mtime +30Älter als 30 Tage

Beispiel:

find /var/log -mtime +7

→ Alle Dateien, die älter als 7 Tage sind.


6. Aktionen mit find

6.1 Dateien löschen

find /var/log -name "*.log" -delete

6.2 Befehl auf Suchergebnisse anwenden

find /home/user -name "*.txt" -exec cp {} /mnt/backup/ \;
  • {} = Platzhalter für die gefundene Datei
  • \; = Ende des Befehls

6.3 Mit xargs kombinieren

find /home/user -name "*.log" | xargs gzip

→ Komprimiert alle gefundenen Logdateien.


7. Suche auf bestimmte Verzeichnistiefe begrenzen

find /home/user -maxdepth 1 -name "*.txt"

→ Nur im aktuellen Verzeichnis suchen, nicht rekursiv.


8. Praxisbeispiele

  1. Größte Dateien im System finden find / -type f -size +1G
  2. Alle temporären Dateien löschen find /tmp -type f -mtime +3 -delete
  3. Alle Logdateien sichern find /var/log -name "*.log" -exec cp {} /mnt/backup/ \;

9. Zusammenfassung

BefehlFunktion
find . -name "*.txt"Dateien nach Name suchen
find /var/log -type f -mtime +7Dateien älter als 7 Tage
find /home -size +100MDateien größer als 100 MB
find /tmp -type f -deleteDateien löschen
find /var/log -name "*.log" -exec cp {} /backup/ \;Dateien kopieren

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert