Existe uma maneira de converter um zip
arquivo em um tar
arquivo sem extrair primeiro um diretório temporário? (e sem escrever minha própria implementação de tar
ou unzip
)
shell-script
tar
zip
user253751
fonte
fonte
Respostas:
Agora está disponível como comando instalável do PyPI, consulte o final deste post.
Não conheço nenhum utilitário "padrão" que o faça, mas quando precisei dessa funcionalidade, escrevi o seguinte script Python para ir dos arquivos tar compactados ZIP para Bzip2 sem extrair nada para o disco primeiro:
Apenas salve-o
zip2tar
e torne-o executável ou salve-ozip2tar.py
e execute-opython zip2tar.py
. Forneça o nome do arquivo ZIP como argumento para o script, o nome do arquivo de saídaxyz.zip
seráxyz.tar.bz2
.A saída compactada do Bzip2 é normalmente muito menor que o arquivo zip, porque este último não usa padrões de compactação em vários arquivos, mas também há menos chances de recuperar arquivos posteriores se algo no arquivo Bzip2 estiver errado.
Se você não deseja compactar a saída, remova
:bz2
e.bz2
do código.Se você
pip
instalou em um ambiente python3, pode:para obter um
zip2tar
utilitário de linha de comando fazendo o acima (aviso: eu sou o autor desse pacote).fonte
time
falta de umimport
.time
comentário, eu atualizar a respostaO
tar
comando lida com sistemas de arquivos. Sua entrada é uma lista de arquivos que são lidos em um sistema de arquivos (incluindo muitos metadados). Você precisaria apresentar o arquivo zip como um sistema de arquivos para otar
comando lê-lo.Um sistema de arquivos virtual - AVFS permitirá que qualquer programa procure dentro de arquivos compactados ou arquivados por meio de uma interface padrão de sistema de arquivos via FUSE .
Há algumas informações detalhadas no leia-me do avfs-fuse e algumas distribuições têm pacotes para isso.
Se você tiver o AVFS instalado, poderá
O AVFS preencherá todas as informações do sistema de arquivos ausentes do zip, como a propriedade do arquivo, que o tar será capturado.
fonte
Aqui está um pequeno trecho que converte um arquivo ZIP em um arquivo TAR.GZ correspondente no OnTheFly.
Converter arquivo ZIP em arquivo TAR em tempo real
Fonte
fonte