find: Dateien präzise suchen und bearbeiten

Inhaltsverzeichnis

find ist dein Schweizer Taschenmesser für Dateisuche und -automation unter Linux und damit ein klares Must-have für die RHCSA‑Prüfung. Im Gegensatz zu locate arbeitet find immer in Echtzeit auf dem Dateisystem und kann gefundene Dateien direkt mit anderen Befehlen verarbeiten.

Warum du find können musst

Als Admin brauchst du find, um schnell Dateien anhand von Namen, Typ, Größe, Zeitstempeln, Besitzer oder Rechten zu finden – genau solche Aufgaben tauchen auch im RHCSA‑Kontext auf (Suche, Dateirechte, Aufräumen, Skripting). Außerdem kannst du mit find direkt Aktionen ausführen, etwa Logs löschen, Berechtigungen anpassen oder Ergebnisse für Skripte vorbereiten.RHCSA-Ziele.

Grundsyntax von find

Die typische Struktur ist:

  • find <pfad> <ausdruck> – durchsucht einen Pfad mit einem Ausdruck aus Tests und Aktionen.linuxcert
  • Du kannst mehrere Tests kombinieren (z.B. Typ, Name, Größe) und am Ende eine Aktion wie -print oder -exec anhängen.linuxconfig+1

Beispiele:

find /etc -type f -name "*.conf"
find /var/log -type f -size +100M

Wichtige Optionen im RHCSA‑Alltag

Hier ein Fokus auf Optionen, die du sowohl in der Praxis als auch in der Prüfung oft brauchst.RHCSA-Ziele.md​linuxcert

  • -name / -iname
    Sucht nach Dateinamen, -iname ist dabei nicht case‑sensitiv.
find /home -name "backup*.tar"
  • -type
    Filtert nach Dateityp, etwa -type f (reguläre Datei), -type d (Verzeichnis), -type l (Symlink).
find /var -type d -empty
  • -size
    Sucht nach Dateigrößen; z.B. +100M größer als 100 MB, -1k kleiner als 1 KB.
find / -type f -size +500M
  • -user / -group
    Findet Dateien eines bestimmten Users oder einer Gruppe, nützlich für Berechtigungs‑Audits.
find /home -user student
  • -perm
    Sucht nach Rechten, z.B. SUID‑Bit – klassischer RHCSA‑Use‑Case.
find / -perm -4000 -type f
  • -mtime, -atime, -ctime
    Filter nach Änderungs‑, Zugriffs‑ oder Statuszeit in Tagen; mit + älter, mit - neuer als N Tage.
find /var/log -type f -mtime +7

Aktionen: -print, -delete und -exec

Aktionen bestimmen, was mit den gefundenen Dateien passiert.

  • Standard ist -print
    Gibt den Pfad einfach aus, oft implizit.
find /tmp -type f -name "*.tmp" -print
  • -delete
    Löscht die gefundenen Dateien direkt; funktioniert nur sicher, wenn der Ausdruck vorher richtig einschränkt.
find /tmp -type f -name "*.tmp" -delete
  • -exec
    Führt einen Befehl für jede gefundene Datei aus; {} steht für den Dateinamen, abgeschlossen wird mit \; oder +.
ind /var/log -type f -name "*.log" -exec chmod 640 {} \;

locate kurz eingeordnet

locate ist die Turbo‑Variante, wenn du „nur schnell wissen willst, wo etwas liegt“.

  • locate durchsucht eine vorberechnete Datenbank (meist täglich durch updatedb erzeugt) und ist dadurch extrem schnell.
  • Dafür sieht locate neue Dateien erst nach dem nächsten Datenbank‑Update und bietet kaum Filter – im Prinzip nur Namenssuche.

Wenn du also frisch angelegte Dateien prüfen, nach Rechten/Größen/Zeit filtern oder direkt Aktionen ausführen willst, gehört find ins Werkzeugset – und damit automatisch in deine RHCSA‑Vorbereitung.

-exec vs Pipe vs xargs

Für die Verarbeitung der Ergebnisse hast du drei typische Wege: -exec, eine Pipe zu einem anderen Kommando oder xargs.

Überblick

TechnikFunktionsweiseVorteileNachteile
-exec ... \;Befehl pro DateiEinfach, klar, ohne extra ToolViele Prozesse, langsamer bei vielen Dateien
-exec ... +Mehrere Dateien pro AufrufEffizienter, POSIX‑konform, robustNicht jeder kennt die Syntax
Pipe ``Übergibt Pfade auf STDOUT an ein anderes ProgrammFlexibel, kombinierbar mit Tools wie grep
xargsBaut aus Eingabe Argumentlisten für BefehleSehr schnell bei vielen DateienVorsicht bei Leerzeichen/Sonderzeichen

Wann -exec sinnvoll ist

-exec ist ideal, wenn du wenige bis mittlere Dateimengen hast oder in der Prüfung eine klare, leicht lesbare Einzeiler‑Lösung zeigen willst.

  • Du bekommst garantierte, korrekte Behandlung von Dateinamen, auch mit Leerzeichen, wenn du {} richtig nutzt.
  • In Kombination mit \; ist die Ausführung sehr intuitiv: „für jede Datei führe diesen Befehl aus“ – perfekt zum Merken im RHCSA‑Stress.

Beispiel:

find /home -type f -name "*.sh" -exec chmod 750 {} \;

Wann Pipe + xargs besser ist

Bei sehr vielen Dateien kann -exec ... \; langsam werden, weil für jede Datei ein neuer Prozess gestartet wird.

Fazit

Wie du gemerkt hast ist find nicht nur eine Such– sondern auch eine Filter– und Ausführungs-Maschine und ein Mächtiges Werkzeug. Entscheide ob die eingebauten Möglichkeiten der Ausführung zu deinem Workflow passen oder ob Piping oder Befehle wie xargs besser zu der jeweiligen Aufgabe passen. Teste ein paar Optionen und mach dich auf die Suche.

Fediverse reactions

Schreibe einen Kommentar

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

Andreas Moor
Andreas Moor
@blog@andreas-moor.de

Hallo Fediverse, ich bin Andy!

Hier und auf meiner Website findest du mein akkumuliertes Linux-Sysadmin-Wissen, meine kleinen und größeren Projekte und die Tools, die ich nutze.

Viel Spaß beim stöbern, lesen und lernen! 🧑‍💻

217 Beiträge
10 Folgende