Hallo zusammen
Wo wir gerade dabei sind, ich komme damit wohl etwas "zu spät" aber ich hatte mal das selbe Problem. Vor einem Weilchen habe ich viele Dateien kopiert und die Datreinamen sind im Linuxdateisystem nun einfach falsch. (Rechtecke statt Umlaute ...) Nun habe ich die Originaldateien schon gelöscht also kann ich nicht alles einfach neu kopieren und diesmal vorher beim mounten darauf achten das alles stimmt. Gibt es eine Möglichkeit im Nachhinein die Namen wieder zu reparieren?
Clemens _____________________________________________________________________ Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! http://smartsurfer.web.de/?mc=100071&distributionid=000000000066
Hallo Clemens, hallo Liste
Clemens Passeck wrote:
Hallo zusammen
Wo wir gerade dabei sind, ich komme damit wohl etwas "zu spät" aber ich hatte mal das selbe Problem. Vor einem Weilchen habe ich viele Dateien kopiert und die Datreinamen sind im Linuxdateisystem nun einfach falsch. (Rechtecke statt Umlaute ...) Nun habe ich die Originaldateien schon gelöscht also kann ich nicht alles einfach neu kopieren und diesmal vorher beim mounten darauf achten das alles stimmt. Gibt es eine Möglichkeit im Nachhinein die Namen wieder zu reparieren?
Bestimmt;-)
find * -type d -exec myrename.sh '{}' ; find * -type f -exec myrename.sh '{}' ;
und myrename.sh sieht dann ungefähr so aus:
#!/bin/bash mv $1 `echo "$1" | iconv -f cp1252 -t utf8`
Man könnte jetzt noch testen, ob sich beide Varianten unterschieden, um Fehlermeldungen abzufangen oder gucken, ob das Ziel schon da ist (wird sonst einfach überschrieben) usw. Diese Aufgaben seien dem geneigten Leser überlassen.
Tobias
Alle 09:15, martedì, 12. settembre 2006, Clemens Passeck ha scritto:
Hallo zusammen
Wo wir gerade dabei sind, ich komme damit wohl etwas "zu spät" aber ich hatte mal das selbe Problem. Vor einem Weilchen habe ich viele Dateien kopiert und die Datreinamen sind im Linuxdateisystem nun einfach falsch. (Rechtecke statt Umlaute ...)
Hier sollte man erstmal sicher stellen, ob wirklich die Kodierung im Eimer ist oder die Schriftart. (*) Gib mal ls > `tempfile` echo !$ ein, und schaue mit einem Editor wie 'kate' ('kwrite') bei verschiedenen Kodierungen den Text der angezeigten an.
Nun habe ich die Originaldateien schon gelöscht also kann ich nicht alles einfach neu kopieren und diesmal vorher beim mounten darauf achten das alles stimmt. Gibt es eine Möglichkeit im Nachhinein die Namen wieder zu reparieren?
Schau dir mal 'iconv' und 'recode' an. Der Unterschied liegt nun darin, dass du die Dateinamen und nicht die Dateiinhalte konvertieren willst. Das kannst du in einem Script etwa so lösen: for i in *; do newname=`echo $i | iconv -f ISO-8859-15 -t UTF-8`; mv $i $newname; done
(Und natürlich gehen diese for-Schleifen bei Dateien mit Leerzeichen kaputt, aber entsprechende Lösungen finden sich im Archiv der Liste.)
Unter KDE gibt es KRename für umfangreichere Umbenennungen, vielleicht kann das auch Kodierungen ändern. Hab es noch nie verwendet.
Josef
(*) Leider ist es unter X11 bis heute nicht Standard, Fallback-Schriftarten zu definieren. So hat man meist die Auswahl, polnische ogonek-Zeichen ODER (traditionell) chinesische Zeichen zu nutzen (aktuelles Problem meinerseits). Die Wahl der Desktop-Standardschriften bzw. für Mailprogramm bzw. für Konsole/Chat ist also ohnehin eine Kunst für sich, je nachdem welche Sonderzeichen man braucht. Die Standardschriften sehen meist hübsch aus, decken aber meist nur ISO-* ab. Nur als Tipp für die Ubuntu-Neulinge etc.
Clemens Passeck passeck@web.de (Di 12 Sep 2006 09:15:25 CEST):
Hallo zusammen
Wo wir gerade dabei sind, ich komme damit wohl etwas "zu spät" aber ich hatte mal das selbe Problem. Vor einem Weilchen habe ich viele Dateien kopiert und die Datreinamen sind im Linuxdateisystem nun einfach falsch. (Rechtecke statt Umlaute ...) Nun habe ich die Originaldateien schon gelöscht also kann ich nicht alles einfach neu kopieren und diesmal vorher beim mounten darauf achten das alles stimmt. Gibt es eine Möglichkeit im Nachhinein die Namen wieder zu reparieren?
Natürlich. Es ist nicht ganz so trivial wie hier an verschiedener Stelle dargestellt, aber es geht. Irgendwo hatte ich mal einen Script für sowas, denn man muß auch an Symlinks/Verknüpfungen, Verzeichnisse die sich währende des Umbenennens ändern und eventuell schon umbenannte Files und Namenskonflikte nachdenken.
Heiko
Am Dienstag, den 12.09.2006, 17:37 +0200 schrieb Heiko Schlittermann:
Natürlich. Es ist nicht ganz so trivial wie hier an verschiedener Stelle dargestellt, aber es geht. Irgendwo hatte ich mal einen Script für sowas, denn man muß auch an Symlinks/Verknüpfungen, Verzeichnisse die sich währende des Umbenennens ändern und eventuell schon umbenannte Files und Namenskonflikte nachdenken.
apt-cache show convmv
Description: filename encoding conversion tool convmv can convert a single filename, a directory tree or all files on a filesystem to a different encoding. It only converts the encoding of filenames, not files contents. A special feature of convmv is that it also takes care of symlinks: the encoding of the symlink's target will be converted if the symlink itself is being converted. . It is also possible to convert directories to UTF-8 which are already partially UTF-8 encoded.
damit habe ich schon mehrfach alten ISO-8859-.. & KOI-8- bzw. Windows-Codepage-Kram nach UTF-8 konvertiert.
Gruß Jan
Jan Dittberner jan@dittberner.info (Di 12 Sep 2006 19:20:52 CEST):
Am Dienstag, den 12.09.2006, 17:37 +0200 schrieb Heiko Schlittermann:
Natürlich. Es ist nicht ganz so trivial wie hier an verschiedener Stelle dargestellt, aber es geht. Irgendwo hatte ich mal einen Script für sowas, denn man muß auch an Symlinks/Verknüpfungen, Verzeichnisse die sich währende des Umbenennens ändern und eventuell schon umbenannte Files und Namenskonflikte nachdenken.
apt-cache show convmv
Wieder was gelernt. Macht genau das, was mein alter Perlscript auch machte.
Danke.
lug-dd@mailman.schlittermann.de