URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 66079
[ Назад ]

Исходное сообщение
"как научить тар читать руские имена файлов?"

Отправлено erGo , 04-Май-06 12:54 

#! /bin/sh
DUMPDIR="/usr/home/ergo/"
DUMPFILE="/mnt/ann/_server/%sdir%-%Y-%m-%d-%H"

for dir in ${DUMPDIR}
do
  SHORTDIR=$(echo ${dir} | awk -F/ '{ print $NF }')
  cd ${dir}/..
  $(tar cf - ${SHORTDIR} > $(date +"$(echo ${DUMPFILE} | sed -e s/%sdir%/${SHORTDIR}/g)").tar.bz2)
done


Содержание

Сообщения в этом обсуждении
"как научить тар читать руские имена файлов?"
Отправлено lavr , 04-Май-06 13:07 
>
>#! /bin/sh
>DUMPDIR="/usr/home/ergo/"
>DUMPFILE="/mnt/ann/_server/%sdir%-%Y-%m-%d-%H"
>
>for dir in ${DUMPDIR}
>do
>  SHORTDIR=$(echo ${dir} | awk -F/ '{ print $NF }')
>  cd ${dir}/..
>  $(tar cf - ${SHORTDIR} > $(date +"$(echo ${DUMPFILE} | sed -e s/%sdir%/${SHORTDIR}/g)").tar.bz2)
>done

tar'у фиолетово какие буквы: русские, немецкие или вовсе иероглифы


"как научить тар читать руские имена файлов?"
Отправлено erGo , 04-Май-06 13:12 
>>
>>#! /bin/sh
>>DUMPDIR="/usr/home/ergo/"
>>DUMPFILE="/mnt/ann/_server/%sdir%-%Y-%m-%d-%H"
>>
>>for dir in ${DUMPDIR}
>>do
>>  SHORTDIR=$(echo ${dir} | awk -F/ '{ print $NF }')
>>  cd ${dir}/..
>>  $(tar cf - ${SHORTDIR} > $(date +"$(echo ${DUMPFILE} | sed -e s/%sdir%/${SHORTDIR}/g)").tar.bz2)
>>done
>
>tar'у фиолетово какие буквы: русские, немецкие или вовсе иероглифы


окей, как сделать так чтоб при распаковывании в винде в архиве были нормальные имена файлов?


"как научить тар читать руские имена файлов?"
Отправлено lavr , 04-Май-06 13:24 
>>>
>>>#! /bin/sh
>>>DUMPDIR="/usr/home/ergo/"
>>>DUMPFILE="/mnt/ann/_server/%sdir%-%Y-%m-%d-%H"
>>>
>>>for dir in ${DUMPDIR}
>>>do
>>>  SHORTDIR=$(echo ${dir} | awk -F/ '{ print $NF }')
>>>  cd ${dir}/..
>>>  $(tar cf - ${SHORTDIR} > $(date +"$(echo ${DUMPFILE} | sed -e s/%sdir%/${SHORTDIR}/g)").tar.bz2)
>>>done
>>
>>tar'у фиолетово какие буквы: русские, немецкие или вовсе иероглифы
>
>
>окей, как сделать так чтоб при распаковывании в винде в архиве были
>нормальные имена файлов?

дык они нормальные, сам tar ну нифигушеньки с ними не делает :)

Могу лишь предположить что вы не понимаете и не представляете вашей проблемы, а они
видимо в том что на сервере ОДНО локале, а у клиента другое, вот отсюда и растут ноги
вашей "проблемы", как только вы это поймете - у вас ФСЕ плучится!


"как научить тар читать руские имена файлов?"
Отправлено erGo , 04-Май-06 13:35 
>>>>
>>>>#! /bin/sh
>>>>DUMPDIR="/usr/home/ergo/"
>>>>DUMPFILE="/mnt/ann/_server/%sdir%-%Y-%m-%d-%H"
>>>>
>>>>for dir in ${DUMPDIR}
>>>>do
>>>>  SHORTDIR=$(echo ${dir} | awk -F/ '{ print $NF }')
>>>>  cd ${dir}/..
>>>>  $(tar cf - ${SHORTDIR} > $(date +"$(echo ${DUMPFILE} | sed -e s/%sdir%/${SHORTDIR}/g)").tar.bz2)
>>>>done
>>>
>>>tar'у фиолетово какие буквы: русские, немецкие или вовсе иероглифы
>>
>>
>>окей, как сделать так чтоб при распаковывании в винде в архиве были
>>нормальные имена файлов?
>
>дык они нормальные, сам tar ну нифигушеньки с ними не делает :)
>
>
>Могу лишь предположить что вы не понимаете и не представляете вашей проблемы,
>а они
>видимо в том что на сервере ОДНО локале, а у клиента другое,
>вот отсюда и растут ноги
>вашей "проблемы", как только вы это поймете - у вас ФСЕ плучится!
>
проблема по видимому в том что эти имена фрями нормально читаются а при распаковывании в винде не очень красиво...
задача в том чтобы запаковать так чтоб под виндами их можно было распаковать и увидеть нормальные имена.
есть вариант монтировать смб раздел и с него архивировать... но производительность падает при этом с грохотом

"как научить тар читать руские имена файлов?"
Отправлено newser , 04-Май-06 13:52 
>проблема по видимому в том что эти имена фрями нормально читаются а
>при распаковывании в винде не очень красиво...
>задача в том чтобы запаковать так чтоб под виндами их можно было
>распаковать и увидеть нормальные имена.
>есть вариант монтировать смб раздел и с него архивировать... но производительность падает
>при этом с грохотом

Вам же объяснили, что локаль разная: во фри - koi8-r, в винде - cp1251.


"как научить тар читать руские имена файлов?"
Отправлено erGo , 04-Май-06 13:55 
>>проблема по видимому в том что эти имена фрями нормально читаются а
>>при распаковывании в винде не очень красиво...
>>задача в том чтобы запаковать так чтоб под виндами их можно было
>>распаковать и увидеть нормальные имена.
>>есть вариант монтировать смб раздел и с него архивировать... но производительность падает
>>при этом с грохотом
>
>Вам же объяснили, что локаль разная: во фри - koi8-r, в винде
>- cp1251.


я это отлично понимаю но я не знаю как можно решить мою задачу... ведь её можно как то решить?


"как научить тар читать руские имена файлов?"
Отправлено lavr , 04-Май-06 14:22 
>>>проблема по видимому в том что эти имена фрями нормально читаются а
>>>при распаковывании в винде не очень красиво...
>>>задача в том чтобы запаковать так чтоб под виндами их можно было
>>>распаковать и увидеть нормальные имена.
>>>есть вариант монтировать смб раздел и с него архивировать... но производительность падает
>>>при этом с грохотом
>>
>>Вам же объяснили, что локаль разная: во фри - koi8-r, в винде
>>- cp1251.
>
>
>я это отлично понимаю но я не знаю как можно решить мою
>задачу... ведь её можно как то решить?

ну вот, все гораздо лучше - вы понимаете в чем дело, остальное дело техники:

- попробовать tar без locale KOI8-R (ну там с C или en_US или)
- попробовать tar c locale CP1251

причем попробовать прям в скрипте выставлять locale

Да, забыл, прежде всего нужно определиться а в КАКОЙ КОДИРОВКЕ у вас dirname и filename,
если в KOI8-R, ну тады вам нужно перекодировать - как, это уже другой вопрос, да хоть
к примеру вставить перекодировку прямо в sources tar и пересобрать его, типа:

tar --recode koi8-r:cp1251 other_options

кстати, плевое дело, ну вобщем есть варианты

Итого:

- определить ГДЕ ФИЗФИЧЕСКИ находятся "русские" файлы/директории
- в какой КОДИРОВКЕ
- в какой кодировке на сервере, на клиенте (через ЧТО и КАК отдаются)

собственно ВСЕ.


"как научить тар читать руские имена файлов?"
Отправлено erGo , 04-Май-06 14:17 
>
>#! /bin/sh
>DUMPDIR="/usr/home/ergo/"
>DUMPFILE="/mnt/ann/_server/%sdir%-%Y-%m-%d-%H"
>
>for dir in ${DUMPDIR}
>do
>  SHORTDIR=$(echo ${dir} | awk -F/ '{ print $NF }')
>  cd ${dir}/..
>  $(tar cf - ${SHORTDIR} > $(date +"$(echo ${DUMPFILE} | sed -e s/%sdir%/${SHORTDIR}/g)").tar.bz2)
>done

#! /bin/sh
mount_smbfs -E cp1251:CP866 -N //server/ergo/ /mnt/ergo
DUMPDIR="/mnt/ergo"
DUMPFILE="/mnt/ann/_server/%sdir%-%Y-%m-%d-%H"

for dir in ${DUMPDIR}
do
  SHORTDIR=$(echo ${dir} | awk -F/ '{ print $NF }')
  cd ${dir}/..
  $(tar cf - ${SHORTDIR} > $(date +"$(echo ${DUMPFILE} | sed -e s/%sdir%/${SHORTDIR}/g)").tar.bz2)
done
umount /mnt/work

так вот всё пашет, но медлено... может есть какаято другая возможность делать русовиндовые архивы?


"как научить тар читать руские имена файлов?"
Отправлено Lanselot , 22-Июл-09 18:54 
>[оверквотинг удален]
>for dir in ${DUMPDIR}
>do
>  SHORTDIR=$(echo ${dir} | awk -F/ '{ print $NF }')
>  cd ${dir}/..
>  $(tar cf - ${SHORTDIR} > $(date +"$(echo ${DUMPFILE} | sed -e s/%sdir%/${SHORTDIR}/g)").tar.bz2)
>done
>umount /mnt/work
>
>так вот всё пашет, но медлено... может есть какаято другая возможность делать
>русовиндовые архивы?

Использовать p7zip


"как научить тар читать руские имена файлов?"
Отправлено ItarTass , 08-Янв-10 15:30 
Помогите решить проблему.
Есть архив - 20 терабайт(был 1 терабайт в tar.7z)-после разархивирования стал такой большой.

В нем около миллиона HTML(это копия рувики в HTML формате без php).

Как мне в Windows его распаковать с русскими именами файлов и субдиректорий?

WinRAR и 7Zip выдают неправильную кодировку.