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 .
Ein Kommentar Kommentare
Super! Genau, was ich gesucht habe! Endlich ist es mir gelungen, alle Dateien vom Windows USB-Stick auf die Linux-Festplatte zu kopieren! Vielen Dank für die Anleitung!