Скрипт перекодировки с помощью iconv

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Curious mind
проходил мимо

Скрипт перекодировки с помощью iconv

Непрочитанное сообщение Curious mind » 2010-10-20 19:55:06

Кто нибудь реализовывал перекодировку русских имен файлов и папок для корректной разархивации под Win ?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Burner
лейтенант
Сообщения: 693
Зарегистрирован: 2009-06-14 7:02:26

Re: Скрипт перекодировки с помощью iconv

Непрочитанное сообщение Burner » 2010-10-20 21:49:23

вопрос непонятен, но скорей всего, кто-нибудь реализовывал.

Kazak
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-07-28 9:46:46

Re: Скрипт перекодировки с помощью iconv

Непрочитанное сообщение Kazak » 2010-10-20 22:14:02

Burner писал(а):вопрос непонятен, но скорей всего, кто-нибудь реализовывал.
Для того чтобы архив содержащий имена файлов и папок с русскими названиями сделанный во FreeBSD мог быть корректно разархивирован под Windows нужна перекодировка из KOI8-R в СP1251 перед упаковкой в архив.
Ну и еще пара похожих ньюансов
Так вот задача которую я затрудняюсь решить :
- Как перекодировать русские имена паппок и файлов с помощью скрипта авотматически перекодировать в СP1251 чтобы юзвери под виндой без паники могли раскрыть архив и достать что надобно.
Вопрос:
Как это сделать\сделали\обошли\решили, вы уважаемые форумчане?

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Скрипт перекодировки с помощью iconv

Непрочитанное сообщение paix » 2010-10-20 22:17:22

Все очень просто - не используйте архивы с русскими именами.
With best wishes, Sergej Kandyla

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Скрипт перекодировки с помощью iconv

Непрочитанное сообщение Alex Keda » 2010-10-20 22:36:05

paix писал(а):Все очень просто - не используйте архивы с русскими именами.
просто вы не работаете с офисными хомячками.

Код: Выделить всё

                # конвертируем, чтоб нормально под виндой открывалось
                convmv -r -f koi8-r -t cp866 --notest $dir >/dev/null 2>&1
                # делаем zip архив того что наковыряли
                find $dir -type f | zip -r diff_$dir.zip -@ >/dev/null
                rm -rf $remote_backup_dir/$dir
Убей их всех! Бог потом рассортирует...

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Скрипт перекодировки с помощью iconv

Непрочитанное сообщение paix » 2010-10-20 23:43:50

и слава богу что не работаю ;)
хотя если надобно че с самбы забекапить - мне проще. UTF8 везде и проблем нет.

ну это уже другая совсем история.
With best wishes, Sergej Kandyla

Kazak
мл. сержант
Сообщения: 99
Зарегистрирован: 2009-07-28 9:46:46

Re: Скрипт перекодировки с помощью iconv

Непрочитанное сообщение Kazak » 2010-10-21 13:34:02

Код: Выделить всё

find /safe/ -mtime -1 -o -ctime -1 -print|convmv -r -f koi8-r -t cp1251|rar a  -x@/safe/exclude.txt -r -tn1d -agDD-MMM-YYYY /safe/backups/safe_everyday-.rar

По идее должно:
1) Искать в /safe/ файлы с датой создания или изменения меньше одного дня выводить их, передавать результаты в convmv ->
2) Читать результаты из стандартного вывода конвертировать из koi8 в ср1251,передавать результаты в rar ->
3) Читать результаты из стандартного вывода архивировать всё исключая указанное в exclude.txt, называя архив сегодняшний датой.

Делает:
1. Поиск файлов с датой создания либо изменения "сегодня"выводит, передает
3. Архивирует правильный набор файлов правильно именует архив,но не перекодированных.

Что хотел спросить:
1.Правильно ли я пытался заставить convmv считывать из вывода? ( Если не правильно, то как нужно было?)