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/' *.txtrename 's/<old>/<new>/g' <files> — Ersetzt alle Vorkommen in Dateinamen.
rename 's/-/_/g' *.htmlrename -n 's/<old>/<new>/' <files> — Trockenlauf: zeigt nur an, was umbenannt würde, ohne es zu tun.
rename -n 's/.jpeg/.jpg/' *.jpegrename -v 's/<old>/<new>/' <files> — Ausführlich: zeigt jede Umbenennung an.
rename -v 's/IMG_/photo_/' *.jpgrename -f 's/<old>/<new>/' <files> — Erzwingen: überschreibt vorhandene Dateien.
rename -f 's/backup_//' *.sqlGroß-/Kleinschreibung
rename 'y/A-Z/a-z/' <files> — Wandelt Dateinamen in Kleinbuchstaben um.
rename 'y/A-Z/a-z/' *.JPGrename 'y/a-z/A-Z/' <files> — Wandelt Dateinamen in Großbuchstaben um.
rename 'y/a-z/A-Z/' *.txtrename '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/' *.txtEndungen ändern
rename 's/\.txt$/.md/' <files> — Ändert die Dateiendung von .txt zu .md.
rename 's/\.txt$/.md/' *.txtrename 's/\.jpeg$/.jpg/' <files> — Vereinheitlicht JPEG-Endungen.
rename 's/\.jpeg$/.jpg/' *.jpegrename 's/$/.bak/' <files> — Hängt allen Dateien die Endung .bak an.
rename 's/$/.bak/' *.confrename 's/\.bak$//' <files> — Entfernt die Endung .bak von allen Dateien.
rename 's/\.bak$//' *.bakNummerierung & 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*.txtrename -N 1 's/^/sprintf("%03d_",$N++)/e' <files> — Stellt fortlaufende Nummern als Präfix voran.
rename -N 1 's/^/sprintf("%03d_",$N++)/e' *.jpgrename 's/(\d+)/$1+100/e' <files> — Erhöht Zahlen in Dateinamen um 100.
rename 's/(\d+)/$1+100/e' track_*.mp3Hä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/' *.txtrename '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*.logrename '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.
Weiterführende Links
- ubuntuusers-Wiki: rename – deutschsprachige Erklärung des Perl-rename mit Beispielen
- Debian manpages: rename – offizielle Referenz zum Perl-rename (englisch)