Страница 1 из 1

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

Добавлено: 2010-10-20 19:55:06
Curious mind
Кто нибудь реализовывал перекодировку русских имен файлов и папок для корректной разархивации под Win ?

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

Добавлено: 2010-10-20 21:49:23
Burner
вопрос непонятен, но скорей всего, кто-нибудь реализовывал.

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

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

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

Добавлено: 2010-10-20 22:17:22
paix
Все очень просто - не используйте архивы с русскими именами.

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

Добавлено: 2010-10-20 22:36:05
Alex Keda
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

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

Добавлено: 2010-10-20 23:43:50
paix
и слава богу что не работаю ;)
хотя если надобно че с самбы забекапить - мне проще. UTF8 везде и проблем нет.

ну это уже другая совсем история.

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

Добавлено: 2010-10-21 13:34:02
Kazak

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

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 считывать из вывода? ( Если не правильно, то как нужно было?)