LINUX.ORG.RU

Как перевести кодировку имён файлов из utf8 в win


0

0

Давно заметил, что у меня серьёзная проблема с созданием архивов с именами файлов, содержащими русские буквы, но разобраться всё некогда. Использую кодировку utf8. Наспех вчера сархивировал.... Теперь под оффтопиком имена вот в таком виде: при архивировании в tar.bz2 получил такие - Р?Р°С?С'Р° Р?Р°Р?Р°С?С?Р?Р?Р? Р?Р+Р>Р°С?С'Рё при архивировании раром получил такие - │Ъ│-TАTВ│- │б│-│-│-TАTБ│││-││ │-│-│┐│-TБTВ│┐\│а│-│-│││-.ID Как бы их перевести в первозданный вид... Имена второго вида вряд ли удастья, но "Р?Р°С?С'Р° Р?Р°Р?Р°С?С?Р?Р?Р?" - думаю вполне реально. Как бы проще осуществить перекодировку под оффтопиком? и - как архивировать - чтоб сразу нормально получалось?

anonymous

скриптом например rename.sh #!/bin/sh

find $1 -regex "$1/.*" | sort -r | while read f; do fb=$(basename "$f"); fd=$(dirname "$f"); nfb=$(echo "$fb"|iconv -f $2 -t $3); [ "$fb" = "$nfb" ] || (mv "$fd/$fb" "$fd/$nfb"; echo "$fd $fb -> $nfb";) done

# 1 - path # 2 - iz kodirovki # 3 - v kodirovky 1,2,3 параметры команной строки пример использования ./rename.sh /tmp/test utf8 koi8-r все файлы из каталога /tmp/test переименует из utf8 в koi8-r у меня работает, была необходимость 1,2Тб из cp866 в utf8 перегнать за час машина справилась без нареканий

vs
()

как то не красиво получилось

#!/bin/sh <br>

find $1 -regex "$1/.*" | sort -r | while read f; do <br> fb=$(basename "$f"); <br> fd=$(dirname "$f"); <br> nfb=$(echo "$fb"|iconv -f $2 -t $3); <br> [ "$fb" = "$nfb" ] || (mv "$fd/$fb" "$fd/$nfb"; echo "$fd $fb -> $nfb";) <br> done <br>

# 1 - path <br> # 2 - iz kodirovki <br> # 3 - v kodirovky <br> 1,2,3 параметры команной строки <br> пример использования <br> ./rename.sh /tmp/test utf8 koi8-r <br> все файлы из каталога /tmp/test переименует из utf8 в koi8-r у меня работает, была необходимость 1,2Тб из cp866 в utf8 перегнать за час машина справилась без нареканий

vs
()
Ответ на: комментарий от ero-sennin

convmv - отличная штука, но вот у меня каким-то образом оказался на диске файл со странным именем (то ли юникод, то ли что, но выглядит жутко) - так вот он никакими подстановками русских кодировок не поддавался.

Сомневаюсь, что convmv хорошо работает с юникодом (а вот для обычных 1251-кои8 здорово работает!)

KS ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.