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.