Есть ли способ конвертировать zip
архив в tar
архив без предварительного извлечения во временный каталог? (и без написания моей собственной реализации tar
или unzip
)
shell-script
tar
zip
user253751
источник
источник
Ответы:
Теперь это доступно как устанавливаемая команда из PyPI, см. Конец этого поста.
Я не знаю ни одной «стандартной» утилиты, которая бы это делала, но когда мне понадобилась эта функциональность, я написал следующий скрипт на Python для перехода от ZIP к сжатым архивам tar Bzip2 без предварительного извлечения чего-либо на диск:
Просто сохраните его
zip2tar
и сделайте его исполняемым или сохраните егоzip2tar.py
и запуститеpython zip2tar.py
. Укажите имя файла ZIP в качестве аргумента сценария. Выходное имя файлаxyz.zip
будетxyz.tar.bz2
.Сжатый вывод Bzip2 обычно намного меньше, чем файл zip, поскольку последний не использует шаблоны сжатия для нескольких файлов, но также меньше шансов восстановить более поздний файл, если что-то в файле Bzip2 неверно.
Если вы не хотите сжатие вывода, удалите
:bz2
и.bz2
из кода.Если вы
pip
установили в среде Python3, вы можете сделать:чтобы получить
zip2tar
утилиту командной строки, делающую вышеуказанное (отказ от ответственности: я являюсь автором этого пакета).источник
time
не хватаетimport
.time
комментарий, я обновляю ответКоманда
tar
имеет дело с файловыми системами. Входные данные представляют собой список файлов, которые затем считываются из файловой системы (включая большое количество метаданных). Вам нужно будет представить zip-файл как файловую систему дляtar
команды, чтобы прочитать его.Виртуальная файловая система - AVFS позволяет любой программе просматривать архивные или сжатые файлы через стандартный интерфейс файловой системы через FUSE .
В файле readme для avfs-fuse есть некоторая подробная информация, и в некоторых дистрибутивах есть пакеты для этого.
Один у вас установлен AVFS, то вы можете
AVFS заполнит любую информацию для файловой системы, которая отсутствует в zip-файле, например, о принадлежности файла, которую подберет tar.
источник
Вот небольшой фрагмент, который преобразует ZIP-архив в соответствующий архив TAR.GZ OnTheFly.
Конвертировать ZIP архив в TAR архив на лету
Источник
источник