Сей журнал создан для технических записок, касающихся моей работы и интересов в сфере ПО и ЭВМ. Все записи по возможности обновляются.

среда, 19 марта 2008 г.

Безобразия unzip и прочие архиваторы

С архиваторами в linux случаются проблемы.
Вообще, набора tar + gzip/bzip2, zip/unzip, unrar, p7zip (7z) должно хватить для 99% случаев.
Краткая выдержка из man tar:
tar -xvf file.tar — extract file file.tar verbosely
tar -cjf file.tar.bz2 /path/to/files/* — create file file.tar.bz2
-j: bzip2
-z: gzip
а также ставший за последнее время (2008–2009) популярным ключик --lzma
--exclude '*~'

При распаковке часто приходится пользовать unrar -x filename.rar и unzip. Первый при этом корректно распаковывает русские имена, зато второй этого почему-то не умеет. Гуглим, находим такое:
$ unzip -Z1 filename.zip | iconv -f cp1252 -t cp850 | iconv -f cp866
Так хотя бы можно посмотреть имена. Перекодировку имен файлов можно реализовать с помощью convmv.
А можно с помощью bash-скрипта:
zipinfo -1 file.zip | while read i; do f="$(echo $i | iconv -f cp1252 -t cp850 | iconv -f cp866)"; unzip -p file.zip "$i" > "$f"; done

Что характерно, 7z e file.zip распаковывает в еще одной нечитаемой кодировке. Спасиббы тем, кто написал на страницах форумов эти рецепты.
P.S. Самое смешное, что если zip-архив был с mp3, в которых теги в кодировке cp1251, их тоже придется конвертировать ;)

makeself — Make self-extractable archives
Полезные советы shell

Комментариев нет:

Кто такой

Моя фотография
Москва, Москва, Russia
Дипломированный астроном, закончил аспирантуру Специальной Астрофизической Обсерватории РАН. Москвич

Ярлыки