LINUX.ORG.RU

tar и кодировки


0

0

Привет всем!

Вечная тема - проблема с кодировками :-)
Когда-то я понаделал кучу архивов tar+bzip2+vdm_fec. Теперь периодически требуется распаковать что-нибудь из кучи. Архивировалось всё на системе с локалью koi8-r, разархивировать надо на системе с utf8. Внутри tar'ов есть каталоги с русскими именами. Из-за них tar вообще отказывается распаковывать: "tar: \367\323\321\313\317: Невозможно utime: Input/output error". Соответсвенно, не к чему применять convmv, да и вообще ковыряться с ней при распаковке каждого архива неудобно. Что можно сделать с этой проблемой?

Вроде на rusxxms.org была какая-то либа для определения кодировки в архивах на лету.

marsijanin ★★
()

А ничего. Про "невозможно utime" = смени файловую систему (хотя бы на tmpfs).

А чтобы в будущем такого не было, при создании архивов указывай --format=posix.

AEP ★★★★★
()
Ответ на: комментарий от sdio

> 1. выставить локаль кои8
> 2. распаковать
> 3. convmv
Спасибо, примерно так и сделал: распаковал всё, что надо, в той системе, которая запаковывала. Но это ведь не выход - это безобразие! Хочу, чтобы в tar-архивах записывалась кодировка, с которой они создаются. И чтобы при распаковке это учитывалось. И могло отключаться при необходимости... :-)

> --format=posix - из man'а: "create POSIX compliant archive". Что имеется ввиду и как это поможет избежать моей проблемы?

sergey_feo
() автор топика
Ответ на: комментарий от sergey_feo

> Что имеется ввиду и как это поможет избежать моей проблемы?

Это перекодирует имена файлов в UTF-8 на этапе создания архива, и ставит внутри флажок, что они именно так закодированы (чтобы при распаковке tar при необходимости перекодировал обратно).

AEP ★★★★★
()
4 ноября 2007 г.
Ответ на: комментарий от sergey_feo

... Было бы, если б так работало. Понадобилось - попробовал - на кодировки эта опция никак не влияет. Просто в архиве создаётся скрытый файлик с уточнёнными временами.

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