tutorials / linux-search-and-find

Linux Suchen und Finden

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: fd statt find, rg statt grep
  • Grenze Suchbereich ein: Vermeide Suchen ab / wenn möglich
  • Nutze 2>/dev/null: Um Permission-Denied Fehler zu unterdrücken
  • Kombiniere Tools: find + xargs + grep für komplexe Suchen

Weitere Ressourcen