Page 1 of 1

Umlauteproblem bei zip-Archiven (Suse vs. Windows)

Posted: 14. Aug 2006 14:16
by abjetztneu
Ich habe eine riesen Problem mit Umlauten von Dateinamen bei in Suse 10.1 entpackten (und unter Windows gepackten) ZIP-Archiven.
Folgender Problemablauf mit der Frage, wo ich denn etwas anders machen muss...

1. ich erstelle unter Windows eine Datei mit dem Namen "Umlauteäüödavor.mp3" und zippe diese nun: "Umlauteäüödavor.zip"
2. dieses zip-Archiv kopiere ich dann auf mein Suse 10.1 System. Auch dort finde ich nun die zip-Datei mit Umlauten als "Umlauteäüödavor.zip" vor. nach dem "unzip -d ..." entsteht nun jedoch eine Datei, die in der bash als
"Umlaute???davor.mp3" angezeigt wird (in Nautilus werden die Stellen, an denen eigentlich Umlaute sind einfach komplett weggelassen: "Umlautedavor.mp3")
3. wende ich nun z.B. "convmv -f iso-8859-1 -t utf-8 Umlaute???davor.mp3" an ergibt sich die Ausgabe:

Code: Select all

convmv -f iso-8859-1 -t utf-8 Umlaute???davor.mp3
Starting a dry run without changes...
mv "./Umlaute„”davor.mp3"      "./Umlaute„”davor.mp3"
d.h. die Umlaute bleiben verschwunden bzw. werden durch komische Zeichen ersetzt.

Würde mich sehr freuen, wenn mir hier jemand mit möglichen Lösungen weiterhelfen könnte.

Grüße,
Bernd

Posted: 15. Aug 2006 14:39
by komsomolze
Vielleicht

Code: Select all

convmv -f cp850 -t iso-8859-1Umlaute???davor.mp3 

Posted: 16. Aug 2006 9:08
by abjetztneu
Ja super, danke! das hilft.
Bleibt nun noch das Problem, dass meine tollen Windowsdateinamen nicht nur Umlaute sondern auch so böse Sachen wie Leerzeichen und Punkte enthalten.
Damit kommt convmv irgendwie nicht zurecht.
Ausgabe:

Code: Select all

bash: !...-_: event not found
Anführungszeichen ("") um den Dateinamen haben hier leider auch nicht geholfen. Gibt es eine Möglichkeit auch solche Dateinamen mit diesen "Sonderzeichen" zu verarbeiten?

Posted: 17. Aug 2006 12:12
by abjetztneu
Aaah. Ich versteh's nicht. Ein weiterer Test funktioniert doch wieder nicht.

Dateiname unter Windows: DateimitäüöUmlauten.mp3
Dateiname unter Linux (Suse10.1): Dateimit???Umlauten.mp3

Code: Select all

convmv -f cp850 -t iso-8859-1 'Dateimit???Umlauten.mp3'
file or directory not found: Dateimit???Umlauten.mp3
Ein ls zeigt mir im selben Verzeichnis doch genau diese datei (Dateimit???Umlauten.mp3) an!

wo ist das Problem? wieso kann convmv die Datei nicht finden?

Posted: 18. Aug 2006 7:07
by jochen
Kurze Antwort: Quoting. :)

Längere Antwort:
Normalerweise führt die Shell an Deinen Eingaben mehrere Ersetzungen durch. $HOME wird durch "/home/username" ersetzt, *.c durch alle Dateinamen, die auf .c enden usw.
Wenn Du einfache Anführungsstriche (') um einen Text setzt, dann sagst Du der Shell damit effektiv "Finger weg! Diesen Bereich unverändert lassen!" Leider schaltest Du damit auch die Ersetzung ab, durch die Du Dir die Fragezeichen durch die unbekannten Zeichen ersetzen lässt. convmv bekommt dadurch einen Dateiname, der exakt die 3 Fragezeichen enthält - und die gibt es natürlich nicht...

Punkte im Dateinamen sind problemlos, aber Ausrufezeichen können stören, da das für die Shell Bezüge auf History Events sind (man bash, Section HISTORY). Schalte diesen Mechanismus in der Shell am besten ganz aus:

Code: Select all

histchars=""
Das hält, solange diese eine Shell läuft.

Jochen