Einleitung
Das Finden von Dateien und Inhalten ist eine essenzielle Fähigkeit in Linux. Dieser Guide zeigt dir alle wichtigen Werkzeuge und Techniken für effektive Suchen.
Dateien nach Namen finden
Nach Dateinamen suchen
find / -iname "[query]"
fd [query]
Hinweis: fd ist eine moderne, schnellere Alternative zu find mit benutzerfreundlicherer Syntax.
Alle Pfadnamen mit einer Phrase finden
locate [query]
Tipp: locate nutzt eine Datenbank, die regelmäßig aktualisiert werden muss:
sudo updatedb
Befehle und Programme finden
Pfad einer ausführbaren Datei finden
which [command]
Speicherort von Binary/Source/Man-Dateien finden
whereis [command]
Nach Dateiinhalt suchen
Pattern in Datei suchen
grep [query] [file]
Pattern in Command-Output suchen
history | grep [phrase]
Zeitbasierte Suche
Dateien finden, die vor weniger als 60 Minuten modifiziert wurden
find / -mmin -60
Dateien finden, deren Status vor weniger als 60 Minuten geändert wurde
find / -cmin -60
Alle Dateien finden, auf die vor 7 Tagen zugegriffen wurde
find / -atime 7
Größenbasierte Suche
Dateien finden, die größer als 10MB und kleiner als 100MB sind
find / -size +10M -size -100M
Nach Dateityp/Extension suchen
Dateien nach Extension finden
fd -e [extension]
find . -type f -name "*.[extension]"
locate "*.[extension]"
Praktische Beispiele
Alle Python-Dateien im aktuellen Verzeichnis finden
fd -e py
# oder
find . -type f -name "*.py"
Log-Dateien finden, die heute geändert wurden
find /var/log -type f -mtime 0
Große Dateien finden (> 1GB)
find / -type f -size +1G 2>/dev/null
Leere Dateien und Verzeichnisse finden
# Leere Dateien
find . -type f -empty
# Leere Verzeichnisse
find . -type d -empty
Dateien mit bestimmten Berechtigungen finden
# Dateien mit 777 Rechten finden
find / -type f -perm 0777
# Ausführbare Dateien finden
find / -type f -executable
Erweiterte Grep-Nutzung
Rekursiv in allen Dateien suchen
grep -r "search term" /path/to/directory
Case-insensitive Suche
grep -i "pattern" file.txt
Zeilen zählen, die Pattern enthalten
grep -c "pattern" file.txt
Zeilen anzeigen, die Pattern NICHT enthalten
grep -v "pattern" file.txt
Mit Zeilennummern anzeigen
grep -n "pattern" file.txt
Performance-Tipps
fd vs find
fd ist oft schneller und ignoriert automatisch .git und andere versteckte Ordner:
# find - traditionell
find . -type f -name "*.js"
# fd - moderner
fd -e js
ripgrep (rg) vs grep
Für Code-Suchen ist ripgrep deutlich schneller:
# grep - traditionell
grep -r "function" .
# ripgrep - schneller
rg "function"
Kombinierte Suchen
Dateien finden und ausführen
# Alle .log Dateien älter als 30 Tage löschen
find /var/log -name "*.log" -mtime +30 -exec rm {} \;
# Dateien finden und Inhalt durchsuchen
find . -type f -name "*.txt" -exec grep "search term" {} +
Mit xargs für bessere Performance
find . -type f -name "*.txt" | xargs grep "search term"
Best Practices
- Nutze moderne Tools:
fdstattfind,rgstattgrep - Grenze Suchbereich ein: Vermeide Suchen ab
/wenn möglich - Nutze
2>/dev/null: Um Permission-Denied Fehler zu unterdrücken - Kombiniere Tools:
find+xargs+grepfür komplexe Suchen