Como uso a 7-Zip CLI para Windows para criar arquivos .tar.gz?

30

Como posso usar a CLI 7-Zip ( 7za.exe ) no Windows para criar arquivos .tgz, como uso tar zcvf archive.tgz source_filesno Linux?

f.ardelian
fonte

Respostas:

35

Se você quiser fazer isso de uma só vez:

7za.exe a -ttar -so -an source_files | 7za.exe a -si archive.tgz

A -anopção diz ao 7-Zip para não analisar o parâmetro da linha de comandos archive_name que normalmente é necessário.

afrazier
fonte
NOTA: se você não tem 7za.exe em sua 7zip-pasta que você pode também usar 7zg.exe se disponível
ânion
1
No meu caso, nem 7za.exe nem 7zg.exe estavam lá, mas 7z.exe estava.
JOL
tar é necessário porque um tgz ou tar.gz é um arquivo tar que foi compactado com gzip. O 7zip simplesmente não tem a capacidade de fazer tudo isso em apenas uma etapa; portanto, você precisa canalizar a saída do comando que compara seus arquivos no arquivo que compacta o seu tar ^^. É por isso que quando você abre um tar.gz no 7zip, você vê um arquivo tar dentro.
DGoiko 15/10
@DGoiko Eu conheço essa parte - simplesmente não entendi por que o archive.tar nome do arquivo é necessário quando os dados estão sendo transmitidos para o stdout.
afrazier 17/10
Ah eu vejo. Eu pensei que o gz precisava do nome do arquivo interno para ser exibido corretamente, mas talvez eu estivesse errado.
DGoiko 17/10
5

Se você está apenas compactando 1 arquivo no tarball, 7za a archive.tgz source_fileele funcionará.

Se você quiser adicionar muitos arquivos ao tar, precisará fazê-lo em duas etapas: Crie o tar 7za a archive.tar source_files e compacte-o7za a archive.tgz archive.tar

E, opcionalmente, exclua o tar 'temporário' del archive.tar

Chris Kent
fonte