Dateierweiterungen in Unterverzeichnissen umbenennen

Unter Linux/Unix benennt man eine Datei einfach mit dem Befehl mc um. Versucht man bei einer oder besser gleich vielen Dateien die Dateierweiterung umzubenennen, wird es spannend.

Es gibt das Programm `mmv``- “move/copy/append/link multiple files by wildcard patterns”. Mit diesem Programm kann man Dateiumbenennungen vornehmen, die auf einem Muster basieren. Für diesen Fall - und man findet es im Manual - wird folgendes Muster benötigt:

mmv "*.txt" "#1.doc"

Versucht man nun rekursiv alle Dateien in sämtlichen Unterverzeichnissen umzubenennen, so klappt dies gut mit find.

find . -type d -exec mmv "{}/*.md" "{}/#1.txt" \;

Wie man sieht, werden alle md-Dateie in txt-Dateien umbenannt.

Wenn ein Verzeichnis leer ist oder nur Unterverzeichnisse hat, wird eine Warnung angezeigt; das ist aber nicht schlimm und hat nur informativen Charakter.

PS: mmv muss natürlich nachinstalliert werden, da es sich zumeist nicht im Standardumfang der jeweiligen Distribution findet.