rename — Dateien per Muster stapelweise umbenennen

Praxis-Guide zum Perl-rename: Dateien stapelweise per regulärem Ausdruck umbenennen – Groß-/Kleinschreibung, Nummerierung und Muster-Ersetzung.

rename benennt viele Dateien auf einmal um und ist damit der große Bruder von mv, sobald reguläre Ausdrücke ins Spiel kommen. Achtung – und das ist die wichtigste Information auf dieser Seite: Es gibt zwei völlig verschiedene Programme namens rename. Diese Seite behandelt das Perl-rename (auch file-rename oder prename, unter Debian/Ubuntu der Standard), das mit Perl-Ausdrücken wie rename 's/alt/neu/' *.txt arbeitet. Auf RHEL, Fedora und SUSE ist dagegen das util-linux-rename vorinstalliert, das eine inkompatible Syntax hat (rename alt neu *.txt, einfache Zeichenketten-Ersetzung ohne Regex). Prüfe mit rename --version, welche Variante du hast, und probiere Befehle immer zuerst mit -n (Trockenlauf) aus, bevor du sie scharf schaltest.

Grundlagen

rename 's/<old>/<new>/' <files> — Ersetzt das erste Vorkommen eines Musters in Dateinamen.

rename 's/foo/bar/' *.txt

rename 's/<old>/<new>/g' <files> — Ersetzt alle Vorkommen in Dateinamen.

rename 's/-/_/g' *.html

rename -n 's/<old>/<new>/' <files> — Trockenlauf: zeigt nur an, was umbenannt würde, ohne es zu tun.

rename -n 's/.jpeg/.jpg/' *.jpeg

rename -v 's/<old>/<new>/' <files> — Ausführlich: zeigt jede Umbenennung an.

rename -v 's/IMG_/photo_/' *.jpg

rename -f 's/<old>/<new>/' <files> — Erzwingen: überschreibt vorhandene Dateien.

rename -f 's/backup_//' *.sql

Groß-/Kleinschreibung

rename 'y/A-Z/a-z/' <files> — Wandelt Dateinamen in Kleinbuchstaben um.

rename 'y/A-Z/a-z/' *.JPG

rename 'y/a-z/A-Z/' <files> — Wandelt Dateinamen in Großbuchstaben um.

rename 'y/a-z/A-Z/' *.txt

rename 's/(\w+)/\L$1/' <files> — Schreibt den gesamten Dateinamen per Perl-Modifikator klein.

rename 's/(\w+)/\L$1/' *

rename 's/(\w)/\u$1/' <files> — Schreibt den ersten Buchstaben des Dateinamens groß.

rename 's/(\w)/\u$1/' *.txt

Endungen ändern

rename 's/\.txt$/.md/' <files> — Ändert die Dateiendung von .txt zu .md.

rename 's/\.txt$/.md/' *.txt

rename 's/\.jpeg$/.jpg/' <files> — Vereinheitlicht JPEG-Endungen.

rename 's/\.jpeg$/.jpg/' *.jpeg

rename 's/$/.bak/' <files> — Hängt allen Dateien die Endung .bak an.

rename 's/$/.bak/' *.conf

rename 's/\.bak$//' <files> — Entfernt die Endung .bak von allen Dateien.

rename 's/\.bak$//' *.bak

Nummerierung & Auffüllen

rename 's/(\d+)/sprintf("%03d",$1)/e' <files> — Füllt Zahlen in Dateinamen mit führenden Nullen auf 3 Stellen auf.

rename 's/(\d+)/sprintf("%03d",$1)/e' file*.txt

rename -N 1 's/^/sprintf("%03d_",$N++)/e' <files> — Stellt fortlaufende Nummern als Präfix voran.

rename -N 1 's/^/sprintf("%03d_",$N++)/e' *.jpg

rename 's/(\d+)/$1+100/e' <files> — Erhöht Zahlen in Dateinamen um 100.

rename 's/(\d+)/$1+100/e' track_*.mp3

Häufige Muster

rename 's/ /_/g' <files> — Ersetzt Leerzeichen in Dateinamen durch Unterstriche.

rename 's/ /_/g' *

rename 's/[^a-zA-Z0-9._-]/_/g' <files> — Bereinigt Dateinamen: ersetzt Sonderzeichen durch Unterstriche.

rename 's/[^a-zA-Z0-9._-]/_/g' *

rename 's/(.+)\.(.+)/$2.$1/' <files> — Vertauscht Dateiname und Endung.

rename 's/(.+)\.(.+)/$2.$1/' *.txt

rename 's/^(\d{4})(\d{2})(\d{2})/$1-$2-$3/' <files> — Fügt Bindestriche in datumsformatierte Dateinamen ein.

rename 's/^(\d{4})(\d{2})(\d{2})/$1-$2-$3/' 20260315*.log

rename 's/^/prefix_/' <files> — Stellt allen Dateinamen ein Präfix voran.

rename 's/^/2026_/' *.csv

Fazit

Das Perl-rename ist das mächtigste Werkzeug fürs Stapel-Umbenennen, weil es die volle Ausdruckskraft regulärer Ausdrücke mitbringt – inklusive Groß-/Kleinschreibungs-Modifikatoren (\L, \u) und ausgewertetem Code über das /e-Flag für Nummerierung und Berechnungen. Die eine Regel, die du dir merken musst: Vergewissere dich, welches rename installiert ist, denn das util-linux-rename auf RHEL/SUSE versteht diese Perl-Syntax nicht und macht im Zweifel etwas ganz anderes. Schalte jeden Lauf mit -n zuerst trocken, kontrolliere die Vorschau und führe ihn erst dann scharf aus – ein falscher Ausdruck kann viele Dateien auf einmal zerschießen. Für einfache Einzelumbenennungen reicht mv; für komplexere Logik jenseits von Dateinamen greif zu einer Shell-Schleife mit mv und sed.

Verwandte Kommandos

  • mv – einzelne Dateien verschieben und umbenennen
  • find – Dateien finden und Aktionen darauf ausführen
  • sed – Text per Stream-Editor und Regex transformieren