Kodierung von Windows-Dateinamen unter Linux anpassen

Heute hiess es ernst: Auf einem meiner Teilzeitstellen wurde der Dateiserver migriert: Die Nutzerdaten wurden von einem uralten Dell-Server auf einen neueren HP-Server kopiert. Auf der Dell-Kiste lief Samba 2.2, auf dem HP-Server Samba 3.2.

Wie es die Samba-Konfiguration des alten Server so wollte, waren alle Datei- und Ordnernamen mit der Windows-Codepage 850 abgelegt. Erst seit Version 3 legt Samba Dateien intern mit UTF-8-Kodierung ab (falls nicht anders eingestellt).

Zehntausende von Dateien von Hand umzubenennen wäre hirnverrückt gewesen — doch wofür gibt es das Tool convmv?

Installation

Nachdem der Quelltext heruntergeladen worden war, konnte ich das Tool folgendermassen installieren:

# wget "http://www.j3e.de/linux/convmv/convmv-1.14.tar.gz"
# tar xvzf convmv-1.14.tar.gz
# cd convmv-1.14
# make
# make install

Anwendung

Anschliessend startete ich das Tool unter /home/public:

# convmv -f cp850 -t utf8 -r .

Nachdem ich mich an Hand der Testausgabe abgesichert hatte, dass die Sonderzeichen in den Dateinamen tatsächlich korrekt nach UTF-8 übertragen wurden, führte ich den Befehl noch einmal aus — doch dieses Mal wurden die Dateinamen auch wirklich angepasst:

# convmv -f cp850 -t utf8 -r --notest .