Massen-Umbenennungen sind die Sorte Aufgabe, die für immer in einem Stack-Overflow-Tab lebt. Die Shell hat ein halbes Dutzend Wege — mv in einer for-Schleife, rename, prename, mmv, find -exec — und alle haben kleine, ärgerliche Unterschiede zwischen Distributionen.
1. Datums-Präfix hinzufügen
$ clai füge allen .jpg das heutige Datum als Präfix hinzu→ for f in *.jpg; do mv -- "$f" "$(date +%Y-%m-%d)_$f"; done2026-04-27_DSC_0001.jpg2026-04-27_DSC_0002.jpg
Das -- "$f" arbeitet richtig — es verhindert, dass mv Dateinamen, die mit Bindestrich anfangen, als Flags interpretiert. Beim Selberschreiben leicht vergessen.
2. Endungen tauschen
$ clai ändere .jpeg zu .jpg in diesem Ordner→ for f in *.jpeg; do mv -- "$f" "${f%.jpeg}.jpg"; done
Reine Parameter-Expansion, keine externen Tools. Verhält sich gleich auf Linux und macOS — was rename nicht tut.
3. Leerzeichen normalisieren
$ clai ersetze Leerzeichen durch Unterstriche in allen Dateinamen hier→ for f in *\ *; do mv -- "$f" "${f// /_}"; donemy report.pdf -> my_report.pdfproject notes 2026.txt -> project_notes_2026.txt
Der Glob *\ * matcht nur Dateien, die ein Leerzeichen enthalten — der Loop läuft also nicht, wenn nichts zu tun ist. CliAI baut solche kleinen Wächter gern ein.
Wenn clai den Bash-Einzeiler überholt
Für alles jenseits dieser Muster — Groß-/Klein-Konvertierung, Regex-Captures, rekursive Teilbäume — frag in Worten und lass das Modell den passenden find -exec rename 's/.../...' '{}' + oder mmv-Aufruf bauen. Du liest das Ergebnis sowieso; der Inspect-Then-Run-Loop ist das Netz.
Siehe auch
- Große Dateien finden für die Auswahl-Hälfte.
- Vom Einzeiler zum Script — wann ein Rename-Pattern ein eingechecktes
.shverdient.