LINUX.ORG.RU

cp866>koi8 автоматическое перекодирование названий файлов


0

0

Доброго времени суток All!

Возникла проблемка. Есть куча файлов, названных русскими буквами. Так вот эти названия все выглядят, как крякозябры. Тоесть все имена файлов надо переименовать из кодировки cp866 в koi8-r. Поделитесь кто-нибудь скриптиком, для этого дела, а то в ручную это очень долго выходит. Буду очень благодарен

★★★

Не проще ли смонтировать раздел с явным указанием кодовой страницы (тогда имена файлов будут отображаться нормально) и (при необходимости) перенести их куда следует?

Ведь (есть у меня такое подозрение) эти файлы лежат на ФАТе?

Ikonta_521
()

они не на фате. Они на ext2. Просто они мне достались по сетке достались, а я сразу не глянул, какая там кодировка. А сейчас вручную переименовывать лениво. Над какой-то скриптик

deys ★★★
() автор топика

>они не на фате. Они на ext2.

А ext2 нельзя примонтировать с указанием кодовой страницы cp866? Религия не позволяет? Надо скрипт писать?

Понимаю. Сам такой. Был... наверное... ;)

Ikonta_521
()

> А ext2 нельзя примонтировать с указанием кодовой страницы

По крайней мере в man mount от Slackware 8.1 в опциях для ext2 нет упоминаний ни о codepage, ни о iocharset. Возможно, я отстал от прогресса, там unicode вроде как...

Obidos ★★★★★
()

увы, нельзя :( надо бы залезть в код ядра и...

grustnoe ★★
()

Виноват

Признаю свою ошибку. По инерции почему-то показалось, что опция указания кодовой страницы не зависит от типа ФС.

Ikonta_521
()

да в общем-то казалось бы, что не должна. Это же можно вынести на уровень выше fs. Но почему-то не так

grustnoe ★★
()

В общем-то, раз они по сетке пришли, если это была самба, нужно было в самбе кодировку указывать.
Ну а если ftp... я не в курсе.

jackill ★★★★★
()

Програмка fcc перекодирует названия файлов. fcc -f 866 -t koi8-r /каталог я ее часто использую

DarkBlade
()
Ответ на: комментарий от grustnoe

Спасибо всем, кто откликнулся. сделал так: for i in *;do mv "$i" "$(echo $i | alt2koi)";done Без кавычек не работает - в именах файлов пробелы содержатся. Вот если бы кто еще подсказал, как можно скриптиком замутить такую вещь, чтоб из русских имен перекодировалось в транслит и пробелы заменялись на технический пробел

deys ★★★
() автор топика

в транслит iconv вроде умеет, пробелы - man sed или for i in *; do mv $i `echo $i | iconv -f cp866 -t KOI8-R | sed 'y/ /_/'`; done

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