Bash: concatenando bolas TAR

Bash: concatenando bolas TAR

É válido fazer isso:

{
tar -c dir1
tar -c dir2
} | cat > file.tar

O arquivo resultante.tar é uma bola tar válida?
Caso contrário, como posso concatenar bolas de alcatrão rapidamente?

Responder1

Sim, com uma ligeira modificação no seu método.

tar suporta concatenar vários arquivos tar juntos.... lembre-se de sua história... é um TAPE-ARCHIVE.... é um fluxo de dados, que lembra um carretel de fita passando zunindo pela cabeça de leitura/gravação.... é apenas blocos de dados para o programa tar ...

Pelo que meus testes mostram, você precisa ter pelo menos UM arquivo tar em algum lugar...

tar cf one.tar buncha files to add

A partir deste ponto... você pode adicionar mais arquivos ou anexar outro tar (ou vários...)

tar rf one.tar even more files to fill up this pseudo tape
tar Af one.tar two.tar three.tar four.tar

Tudo é compactado em 'one.tar' neste exemplo ...

se você usar o 'RF', ele anexa novos arquivos ao tar fornecido (um.taraqui), enquanto que se você usar oAf, ele anexa um ou mais arquivos tar ao arquivo tar original (urk! recursive tar! sticky!)

Como sempre, as páginas de manual são suas amigas. (lento, com um leve brilho de amigos verdes de fósforo... mas amigos)

Responder2

Você não pode simplesmente concatenar tarballs assim, ele não se comportará como você esperaria. Você pode verificar o conteúdo do tarball usando:

tar tf file.tar

Isso imprimiria apenas o conteúdo de dir1without dir2. Para arquivar dois diretórios dir1e dir2em file.tar, você pode usar:

tar cf file.tar dir1 dir2

O manual está disponível emhttp://www.gnu.org/software/tar/manual/

informação relacionada