CLI AI

Hunderte Dateien umbenennen: vom `for`-Loop zur Klartext-Aufgabe

2026-02-01

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
$ 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
$ 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
$ 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