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 :)