Лучше поздно чем никогда, решил перевести пару серверов на UTF-8, в связи с чем возникла проблема перекодировки русских имён файлов и текстовых файлов. Решил поделиться скриптами. Итак, для перекодировки имён файлов с KOI8-R в UTF-8, вот такой скрипт, который перекодирует файлы в текущем каталоге.

convert_filenames_from_koi8-r_to_utf-8.sh:

#!/bin/bash

ls -1 | while read name ; do
newname=`echo $name | iconv -f KOI8-R -t UTF-8`
if [ "$name" != "$newname" ] ; then
  echo "$name => $newname"
  mv -f "$name" "$newname"
fi
done

Для перекодировки файлов решено было расширить меню Midnight Commander-а (mc) соответствующим пунктом. Т. е. выбираются файлы, которые нужно перекодировать, нажимается кнопка F2, выбирается последний пункт. Для внесения изменений в меню Midnight Commander-а, необходимо добавить в конец файла /etc/mc/mc.menu следующие строки:

= t r
+ ! t t
i       Convert from KOI8-R to UTF-8 current file
        cp %f %f.KOI8-R
        iconv -f KOI8-R -t UTF-8 < %f.KOI8-R > %f
        rm -f %f.KOI8-R

+ t t
I       Convert from KOI8-R to UTF-8 tagged files
        for i in %t
        do
          cp $i $i.KOI8-R
          iconv -f KOI8-R -t UTF-8 < $i.KOI8-R > $i
          rm -f $i.KOI8-R
        done
Facebooktwittergoogle_plusredditpinterestlinkedintumblr

Comments

comments