TLDR : normalmente você pode apenas concatená-los
O formato de arquivo usd por gzip
é projetado de forma que a concatenação de dois ou mais arquivos compactados e a descompactação do resultado forneçam os mesmos dados que concatenam as versões descompactadas; Vejo
link
link
Paralelamente, o formato tar
foi originalmente projetado para que você possa adicionar entradas ao final de um arquivo. Isso foi efetivamente requerido porque o '(t) ape (ar) chive' foi projetado para usar fita magnética para backup e intercâmbio, e os drives de fita magnética dos anos 1950-1980 (aproximadamente) não podiam 'reescrever' com segurança (atualização) os dados existentes só adicionam ao final. (Essas unidades poderiam separar arquivos lógicos em uma fita usando uma 'marca de fita' mas sistemas Unix não suportavam metadados aka rótulos em magtape e gerenciar grandes números de arquivos de fita pela posição numérica física era apenas uma PITA , então a abordagem tar
de adicionar a um arquivo existente era muito preferida.
Nos últimos anos, isso se tornou muito menos comum, e o GNU tar agora não suporta por padrão; você tem que especificar -i
(ou formulário longo --ignore-zeros
) e então funciona bem:
$ printf 'ONEONEONE%90d\n' {0..99999} >file1
$ printf 'TWOTWOTWO%90d\n' {0..199999} >file2
$ ll
total 29300
-rw-r--r--. 1 dthomps users 10000000 Sep 9 02:14 file1
-rw-r--r--. 1 dthomps users 20000000 Sep 9 02:15 file2
$ tar -czf tar1.tgz file1
$ tar -czf tar2.tgz file2
# or tar -cf - file1 |gzip >tar1.tgz and similarly for 2, see below
$ cat tar2.tgz tar1.tgz >combined.tgz
$ tar -tvzif combined.tgz
-rw-r--r-- dthomps/users 20000000 2016-09-09 02:15 file2
-rw-r--r-- dthomps/users 10000000 2016-09-09 02:14 file1
# or gunzip <combined.tgz |tar -tvif - see below
$
Os tars antigos podem suportar arquivos de concatenação por padrão (sem -i
); se eu tiver tempo para ativar alguns dos meus antigos sistemas de teste, mais tarde eu atualizarei. No entanto, eles geralmente não suportam compactação -z
integrada como gtar, então você precisa usar as formas tar cf - | gzip >
e gunzip < | tar -xf -
.
Se você usar caminhos relativos para arquivos no archive, como é comum e preferido hoje, quando você extrair do resultado concatenado todas as entradas (ou todas as selecionadas) forem extraídas em relação ao mesmo novo diretório, você cria cada arquivo 'piece' com caminhos relativos que trabalham juntos conforme desejado. Se você quiser que o arquivo de uma peça anexada substitua um na parte principal, use o mesmo caminho / nome relativo; Se você quiser criar arquivos distintos, use caminhos / nomes relativos distintos.