Linux · Teknologi

convmv for å fikse latin1-filnavn i Linux

16. april 2024 · Ingen Kommentarer

Jeg hadde noen filer på en harddisk, som antakeligvis har vært brukt med en Samba-server for nettverkslagring fra Windows, hvor tegnsettet ikke ble vist skikkelig i Linux.

Slik så filene ut med ls:

hovenko: /mnt/Innskannet$ ls -l
totalt 182748
-rw------- 1 hovenko users 16310600 okt.  12  2013 '1981-08 Lizzie s'$'\370''la.tif'
-rw------- 1 hovenko users 16373000 okt.  12  2013 '1981-08 Lizzie.tif'
-rw------- 1 hovenko users 18903752 okt.  12  2013 '1981 Bonzo og Ditho.tif'
-rw------- 1 hovenko users  6497864 okt.  12  2013 '1984-07 Bonzo og Ditho.tif'
-rw------- 1 hovenko users 27627336 okt.  12  2013 '1986-08-23 Elisabeth og Carro.tif'
-rw------- 1 hovenko users  3685982 okt.  12  2013 '1994 Scott i skog.jpg'
-rw------- 1 hovenko users  2917307 okt.  12  2013 '1994 Scott.jpg'
-rw------- 1 hovenko users  6406824 okt.  12  2013 '1999 Lady p'$'\345'' hytta med ball.tif'
-rw------- 1 hovenko users  6449736 okt.  12  2013 '2000 Bonzo.tif'
-rw------- 1 hovenko users  6449736 okt.  12  2013 '2000 Rex og Oliver.tif'
-rw------- 1 hovenko users 25834760 okt.  12  2013 '2000 Rex.tif'
-rw------- 1 hovenko users  6485128 okt.  12  2013 '2001-05 Lady og Rex.tif'
-rw------- 1 hovenko users  6497736 okt.  12  2013 '2001-07 Rex.tif'
-rw------- 1 hovenko users 25683208 okt.  12  2013 '2002-05-22 Lady.tif'
-rw------- 1 hovenko users   182923 okt.  12  2013 '2005 Bonzo.jpg'
-rw------- 1 hovenko users   106015 okt.  12  2013 '2005 Bonzo ligger i kratt.jpg'
-rw------- 1 hovenko users  4910601 okt.  12  2013 '2011 Buster p'$'\345'' '$'\330''deg'$'\345''rdsodden.jpg'
-rw------- 1 hovenko users  5434227 okt.  12  2013 '2012 Spot p'$'\345'' hytta.jpg'
-rw------- 1 hovenko users    53760 okt.  12  2013  Thumbs.db

I filbehandleren Dolphin ble spesialtegnene vist med ?, og det var ikke mulig å åpne filene derfra eller døpe de om.

Jeg hadde en del flere filer enn disse som hadde feil tegnsett, så manuell omdøping av alle filene var ikke gjennomførbart.

Løsningen ble convmv.

Først en “dryrun”:

$ convmv -f latin1 -t utf-8 *
Starting a dry run without changes...
mv "./1981-08 Lizzie s�la.tif"  "./1981-08 Lizzie søla.tif"
mv "./1999 Lady p� hytta med ball.tif"  "./1999 Lady på hytta med ball.tif"
mv "./2011 Buster p� �deg�rdsodden.jpg" "./2011 Buster på Ødegårdsodden.jpg"
mv "./2012 Spot p� hytta.jpg"   "./2012 Spot på hytta.jpg"
No changes to your files done. Would have converted 4 files in 0 seconds.
Use --notest to finally rename the files.

Og så endringen:

$ convmv -f latin1 -t utf-8 --notest *
mv "./1981-08 Lizzie s�la.tif"  "./1981-08 Lizzie søla.tif"
mv "./1999 Lady p� hytta med ball.tif"  "./1999 Lady på hytta med ball.tif"
mv "./2011 Buster p� �deg�rdsodden.jpg" "./2011 Buster på Ødegårdsodden.jpg"
mv "./2012 Spot p� hytta.jpg"   "./2012 Spot på hytta.jpg"
Ready! I converted 4 files in 0 seconds.

Med opsjon -r så går den rekursivt igjennom underkatalogene.