Falsch dargestellt Umlaute im Dateinamen unter Linux korrigieren

Beim Benutzen von unterschiedlichen Filesystemen als Ablageort für Dateien von unterschiedlichen Betriebssystemen kann es vorkommen, dass Dateinamen mit Umlauten oder anderen Sonderzeichen nicht auf allen anderen Betriebssystemen gleich aussehen. Dies liegt einerseits daran, dass bei der Erstellung der Datei evtl. falsche Zeichensätze für das Dateisystem vorgegeben worden sind und das jeweilige andere Betriebssystem die Zeichen im Dateinamen dann falsch interpretiert. Hinzu kommen noch Netzwerkclients, die evtl. die erforderliche Konvertierung nicht ordnungsgemäß durchführen und so Dateinamen mit Sonderzeichen falsch auf dem Zielsystem erstellen.

Eine oft anzutreffende Variante beim Zusammenspiel von Windows und Linux sind Dateinamen, die von Windows mit dem Zeichensatz ISO-8859-1 oder ISO-8859-15 kodiert worden sind, von Linux aber als UTF-8 erwartet werden.

Bei der Auflistung solch falsch kodierter Dateinamen erhält man dann z.B. folgende Namen: Brief f�r Foobar.doc.

Ein Anschließendes Öffnen des Dokuments erzeugt in z.B. LibreOffice dann die Fehlermeldung Die Datei oder der Ordner Brief f�r Foobar.doc existiert nicht.

In der Linux-Shell kann man solche falsch benannten Dateien einfach umbenennen. In diesem Beispiel würde das mit folgendem Befehl geschehen:

Anstelle der Sonderzeichen setzt man das Fragezeichen, welches als Maske für genau ein Zeichen steht. Wichtig ist die Maskierung von Leerzeichen mit einem vorgestellen umgekehrten Schrägstrich (Backslash). Alternativ zum Maskieren mit dem Backslash (auch Escapen genannt) können die beiden Dateinamen auch in Anführungszeichen (") eingefasst werden.

Bei wenigen Dateien kann diese Umbenennung von Hand erfolgen. Was aber, wenn sehr viele Dateinamen zu korrigieren sind? Auch hier ist bereits ein geeignetes Linux-Utility vorhanden: convmv. Mit dem Befehl

werden im angegeben Verzeichnis die Dateinamen vom Zeichensatz ISO-8859-15 in den Zeichensatz UTF-8 konvertiert. Mit dem Schalter -r kann diese Aufgabe auch gleich für alle darunterliegenden Verzeichnisse ausgeführt werden. Sollte das Utility nicht bereits auf dem Rechner installiert worden sein, kann es über Synaptic oder mit dem Befehl

installiert werden.

Bewerte diesen Beitrag

5 Gedanken zu „Falsch dargestellt Umlaute im Dateinamen unter Linux korrigieren

  1. Fragefix

    Was bedeutet "Schalter -r" ? (Mit dem man das für darunter liegende Verzeichnisse gleich miterledigen kann)

    1. Jens Tautenhahn

      -r bedeutet rekursiv. Mit -r bearbeitet convmv die Dateien in allen Unterverzeichnissen unterhalb des angegebenen Verzeichnisses.

      Mit -r wird hier alles unterhalb von /verzeichnis/zu/den/dateien bearbeitet.

  2. Fragefix

    Verstehe.
    Ist die Schreibweise egal ?
    --notest hab ich in anderen Fällen z.B. schon hinter dem Dateinamen gesehen, deshalb wusste ich anfänglich nicht wohin mit dem -r .

    1. Jens Tautenhahn

      Das kommt immer auf das jeweilige Programm an. Im allgemeinen gilt: "Programm Optionen Verzeichnisse/Dateien", kann aber wie gesagt auch anders sein. Die Man-Page von convmv verlangt "convmv [options] FILE(S) ... DIRECTORY(S)". Ein Blick in die Man-Page ist immer gut ;)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.