# rename — Dateien per Muster stapelweise umbenennen

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

Source: https://www.jpkc.com/db/cheatsheets/files-text/rename/

<!-- PROSE:intro -->
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.
<!-- PROSE:intro:end -->

## Grundlagen

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

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

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

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

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

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

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

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

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

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

## Groß-/Kleinschreibung

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

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

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

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

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

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

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

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

## Endungen ändern

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

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

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

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

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

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

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

```bash
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.

```bash
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.

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

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

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

## Häufige Muster

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

```bash
rename 's/ /_/g' *
```

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

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

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

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

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

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

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

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

<!-- PROSE:outro -->
## 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](https://wiki.ubuntuusers.de/rename/) – deutschsprachige Erklärung des Perl-rename mit Beispielen
- [Debian manpages: rename](https://manpages.debian.org/bookworm/rename/rename.1p.en.html) – offizielle Referenz zum Perl-rename (englisch)
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [mv](https://www.jpkc.com/db/cheatsheets/files-text/mv/) – einzelne Dateien verschieben und umbenennen
- [find](https://www.jpkc.com/db/cheatsheets/files-text/find/) – Dateien finden und Aktionen darauf ausführen
- [sed](https://www.jpkc.com/db/cheatsheets/files-text/sed/) – Text per Stream-Editor und Regex transformieren

