søndag den 3. april 2011

Rsync problem med filnavne

Det virker jo fint med rsync - bortset fra at der var enkelte mapper og filnavne som den nægtede at røre ved - fik eksempelvis fejl som:

rsync: recv_generator: failed to stat "/var/run/usbmount/Seagate_FreeAgent_GoFlex_1/Media/MP3/TV-2/Verdens Lykkeligste Mand/TV2 - P\#345 Fredag Har Jeg Fri.mp3": Invalid or incomplete multibyte or wide character (84)

Det var jo selvfølgelig karakter kodning i filnavnet, den var gal med - lige lidt hjalp det at mounte share på min laptop og ændre navnet - kodningen var stadig forkert.

Fandt svaret på YouTube - man skal bruge programmet convmv (sudo apt-get install convmv).

[embed]http://www.youtube.com/watch?v=YKFL9j-wRKE[/embed]

Jeg vidste kodningen skulle være UTF-8, men der findes åbenbart ingen metode til at finde ud af hvilken kodning det oprindelige filnavn er i - så jeg gættede på at filerne i sin tid kom fra min Windows maskine og dermed måtte det jo være iso-8859-1.

Jeg testede med en enkelt mappe først - i dryrun mode (viser ændringer uden udførsel):
convmv -f iso-8859-1 -t UTF-8 *

Resultatet af dette:

Starting a dry run without changes...
mv "./TV2 - K�rligheden Overvinder Alt.mp3" "./TV2 - Kærligheden Overvinder Alt.mp3"
mv "./TV2 - Mad Og Retf�rdighed.mp3" "./TV2 - Mad Og Retfærdighed.mp3"
mv "./TV2 - P� Fredag Har Jeg Fri.mp3" "./TV2 - På Fredag Har Jeg Fri.mp3"
mv "./TV2 - S�dan Er Det Bare.mp3" "./TV2 - Sådan Er Det Bare.mp3"
mv "./TV2 - Stormfulde H�jder.mp3" "./TV2 - Stormfulde Højder.mp3"
No changes to your files done. Use --notest to finally rename the files.


Altså hedder kommandoen:
convmv --notest -f iso-8859-1 -t UTF-8 *

Eller hvis man er modig - fyrer man kommandoen af på mappeniveau med rekursiv switch:
convmv -r --notest -f iso-8859-1 -t UTF-8 *

Herved bliver alle mapper og filnavne i og under den mappe man står i konverteret - kan anbefale dryrun (uden --notest) første gang, for at se om alle filnavne vil se rigtige ud.

1 kommentar:

  1. Nå - det var åbenbart ikke nok - får stadig de samme fejl i rsync - men nu er filnavnene i det mindste korrekte uden mærkelige tegn.

    Det lader til at have noget at gøre med forskellige i tegn kodning mellem ext3 og ntfs filsystemerne - indtil videre synes jeg, at jeg har prøvet alt inkl. forskellige mount options.

    Hvis der er nogen der har løsningen, hører jeg gerne om den.

    En løsning, som jeg ikke er parat til endnu, er at formatere USB disken med ext3, for den skulle helst være direkte læsbar i Windows, uden ext3 drivere eller lignende - men det kunne jo blive enden på det...

    SvarSlet