Como tar / untar a saída em tempo real

20

Qual é a maneira idiomática de fazer o seguinte

  • tar para stdout
  • leia esta saída tar do stdout e extraia para outra pasta.

Minha solução é    tar --to-stdout .. | tar -C somefolder -xvf -

Mas pode haver uma maneira mais idiomática de fazer isso.

    
por shabunc 11.10.2011 / 18:26

2 respostas

27

A mesma -f - opção também funciona para tarring.

tar -cf - something | tar -C somefolder -xvf -

O GNU tar usa o stdio por padrão:

tar -c something | tar -C somefolder -xv

O rsync também é popular.

rsync -av something/ somefolder/
    
por 11.10.2011 / 19:29
7

Apenas adicionando outro caso de uso aqui. Eu tinha uma estrutura de diretórios grande em um sistema quase sem espaço em disco e queria acabar com um arquivo tar.gz da estrutura de diretórios em outra máquina com muito espaço.

tar -czf - big-dir | ssh user@host 'cat > /path/to/big-dir.tar.gz'

Isso economiza sobrecarga na rede e significa que você não precisa tar do outro lado, caso queira usar o rsync para a transferência.

    
por 25.06.2015 / 18:38

Tags