Com arquivos gzip, você pode simplesmente concatenar os arquivos juntos, assim:
cat file1.gz file2.gz file3.gz > allfiles.gz
De acordo com o RFC gzip ,
Um arquivo gzip consiste em uma série de "membros" (conjuntos de dados compactados). [...] Os membros simplesmente aparecem um após o outro no arquivo, sem nenhuma informação adicional antes, entre ou depois deles.
Observe que isso não é exatamente o mesmo que construir um único arquivo gzip dos dados concatenados; entre outras coisas, todos os nomes de arquivos originais são preservados. No entanto, gunzip parece tratá-lo como equivalente a uma concatenação.
Como as ferramentas existentes geralmente ignoram os cabeçalhos de nome de arquivo para os membros adicionais, não é fácil extrair arquivos individuais do resultado. Se você quiser que isso seja possível, crie um arquivo ZIP. ZIP e GZIP usam o algoritmo DEFLATE para a compressão propriamente dita (ZIP suporta alguns outros algoritmos de compressão assim como uma opção - o método 8 é o que corresponde à compressão de GZIP); a diferença está no formato dos metadados. Como os metadados são descompactados, é simples remover os cabeçalhos gzip e adicionar cabeçalhos de arquivo ZIP e um registro de diretório central. Consulte a especificação do formato gzip e a especificação do formato ZIP .
cat file1.gz file2.gz file3.gz > allfiles.gz
. É realmente simples assim :)cat
resposta, mas com alguns metadados extras. Você pode descompactá-los posteriormente para obter os nomes dos arquivos originais e, em seguida, descompactar todos ou apenas alguns, conforme necessário.zcat
descompacta sua entrada, para que você obtenha uma saída descompactada com uma.gz
extensão.Aqui está o que
man 1 gzip
diz sobre sua necessidade.Não é preciso dizer que
file1
pode ser substituído porfile1.gz
.Você deve observar isto:
Portanto, para obter todos os membros individualmente, você terá que usar algo adicional ou escrever, se desejar.
No entanto, isso também é abordado na página de manual.
fonte
Basta usar cat. É muito rápido (0,2 segundos para 500 MB para mim)
Você pode então ler a saída com zcat para ter certeza de que é bonita:
Eu tentei a outra resposta de 'gz -c' mas acabei com lixo ao usar arquivos já compactados com gzip como entrada (acho que os compactou duas vezes).
PV:
Melhor ainda, se você tiver, 'pv' em vez de gato:
Isso fornece uma barra de progresso conforme funciona, mas faz a mesma coisa que o gato.
fonte
Você pode criar um arquivo tar desses arquivos e então gzip o arquivo tar para criar o novo arquivo gzip
fonte