grep und find vergessen: ripgrep + fd
21. Februar 2026
#cli-tools
#ripgrep
#fd
#rust
grep und find vergessen: ripgrep + fd
Die klassischen Unix-Tools grep und find funktionieren – aber es gibt bessere Alternativen. Geschrieben in Rust, mit Fokus auf Geschwindigkeit und Usability.
ripgrep (rg)
ripgrep durchsucht deinen Code rekursiv. Es respektiert automatisch .gitignore, ist parallelisiert und UTF-8-aware.
Installation
# macOS
brew install ripgrep
# Ubuntu (neuere Versionen)
sudo apt install ripgrep
# Oder: cargo install ripgrep
Warum besser als grep?
# grep
grep -r "function" --include="*.js" . 2>/dev/null
# ripgrep - kein 2>/dev/null nötig, .gitignore respektiert
rg "function" -t js
Nützliche Flags
rg "TODO" --type-add 'web:*.{js,ts,jsx,tsx,vue}' -t web
rg "pattern" -B 2 -A 2 # 2 Zeilen before/after context
rg "pattern" -l # Nur Dateinamen
rg "pattern" --files-without-match # Dateien OHNE Treffer
rg "pattern" -g '!test/' # test/-Ordner ignorieren
fd
fd ist ein benutzerfreundlicher Ersatz für find. Einfache Syntax, schnell, smarte Defaults.
Installation
brew install fd # macOS
sudo apt install fd-find # Ubuntu (binary heißt fdfind)
Warum besser als find?
# find
find . -type f -name "*.rs" -not -path "./target/*"
# fd - kein . nötig, kein -type f, .gitignore automatisch
fd ".rs$"
fd "\.rs$" # exakte Regex
fd Beispiele
fd -e log # Alle .log Dateien
fd config --type d # Nur Verzeichnisse namens "config"
fd -H "\.env" # Hidden files (-H = hidden)
fd -I "node_modules" # Ignoriere .gitignore (-I = no-ignore)
fd "test" -x rm {} \; # Ausführen auf jedem Treffer
Mit fzf kombiniert
# Datei bearbeiten
nvim $(fd -t f | fzf)
# In Repository springen
cd $(fd -t d . ~/Repositories/ | fzf)
Speed-Vergleich
In einem großen Code-Repository (Linux Kernel Source):
# grep
grep -r "EXPORT_SYMBOL" . 2.3s
# ripgrep
rg "EXPORT_SYMBOL" 0.05s
# speedup: 46x
Setup-Tipps
Alias in .zshrc
alias grep='rg'
alias find='fd'
# OderFall: gg (gut grep) bei Konflikten
alias gg='rg'
alias ff='fd'
Integration mit Editoren
VS Code: ripgrep ist bereits die Default-Such-Engine.
Neovim mit Telescope:
require('telescope').setup {
defaults = {
vimgrep_arguments = {
'rg', '--color=never', '--no-heading', '--with-filename',
'--line-number', '--column', '--smart-case'
}
}
}
Fazit
ripgrep und fd sind “batteries included”-Tools. Sie machen das Richtige automatisch, ohne dass du Flags memorieren musst. Einmal umgestiegen, willst du nie wieder zurück.