Linux: fd

12. Juni 2025

Das Unix-Tool find ist seit Jahrzehnten der Standard für die Dateisuche in Linux-Systemen. Mit fd steht jedoch eine moderne Alternative zur Verfügung, die durch verbesserte Performance, einfachere Syntax und zeitgemäße Features überzeugt.

Installation

Ubuntu/Debian

# Ubuntu/Debian
sudo apt install fd-find

# macOS
brew install fd

Grundlegende Syntax und Verwendung

Die Grundsyntax von fd ist deutlich intuitiver als die von find:

fd [PATTERN] [PATH]

Einfache Dateisuche

# Alle Dateien mit "config" im Namen finden
fd config

# Suche in spezifischem Verzeichnis
fd config /etc

# Regex-Pattern verwenden
fd "\.py$"

Vergleich mit find

# find-Syntax
find . -name "*.py" -type f

# fd-Syntax
fd "\.py$"

Erweiterte Features

Dateitype-Filter

# Nur Dateien
fd config -t f

# Nur Verzeichnisse
fd config -t d

# Nur ausführbare Dateien
fd config -t x

# Nur symbolische Links
fd config -t l

Größen- und Zeitfilter

# Dateien größer als 1MB
fd -S +1M

# Dateien kleiner als 500KB
fd -S -500k

# Dateien, die in den letzten 7 Tagen geändert wurden
fd --changed-within 7d

# Dateien älter als 30 Tage
fd --changed-before 30d

Erweiterte Suchoptionen

# Case-insensitive Suche
fd -i CONFIG

# Versteckte Dateien einschließen
fd -H config

# .gitignore-Dateien ignorieren
fd --no-ignore config

# Tiefe der Rekursion begrenzen
fd config -d 3

# Absolute Pfade ausgeben
fd config -a

Praktische Anwendungsbeispiele

Log-Dateien analysieren

# Alle .log-Dateien der letzten 24 Stunden
fd "\.log$" --changed-within 1d

# Große Log-Dateien finden
fd "\.log$" -S +10M

Entwicklungsumgebung

# Alle Python-Dateien in einem Projekt
fd "\.py$" --exclude "__pycache__"

# Konfigurationsdateien finden
fd -e conf -e cfg -e ini

# Backup-Dateien finden
fd "\.bak$" -H

System-Administration

# Temporäre Dateien finden
fd -e tmp -e temp

# Große Dateien identifizieren
fd . -S +100M -t f

# Leere Verzeichnisse finden
fd . -t d --exec-batch rmdir

Integration mit anderen Tools

Kombination mit grep

# In Python-Dateien nach bestimmten Mustern suchen
fd "\.py$" --exec grep -l "import pandas"

Verwendung mit xargs

# Alle Python-Dateien formatieren
fd "\.py$" | xargs black

Pipeline mit anderen Commands

# Dateien kopieren
fd "\.conf$" /etc | xargs -I {} cp {} /backup/

# Berechtigungen ändern
fd "\.sh$" --exec chmod +x

Fazit

fd stellt eine deutliche Verbesserung gegenüber dem klassischen find-Tool dar. Die intuitivere Syntax, bessere Performance und sinnvollen Standardeinstellungen machen es zu einer attraktiven Alternative.