Umlauteproblem bei zip-Archiven (Suse vs. Windows)

Post Reply
Message
Author
abjetztneu
Posts: 7
Joined: 14. Aug 2006 10:49

Umlauteproblem bei zip-Archiven (Suse vs. Windows)

#1 Post 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

komsomolze
Posts: 430
Joined: 03. Mar 2006 23:16

#2 Post by komsomolze »

Vielleicht

Code: Select all

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

abjetztneu
Posts: 7
Joined: 14. Aug 2006 10:49

#3 Post 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?

abjetztneu
Posts: 7
Joined: 14. Aug 2006 10:49

#4 Post 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?

User avatar
jochen
prolinux-forum-admin
Posts: 699
Joined: 14. Jan 2000 15:37
Location: Jülich
Contact:

#5 Post 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
Die grösste Lüge der EDV? "Mal eben..."

Post Reply