Pesquisa de site

Como dividir um arquivo 'tar' grande em vários arquivos de determinado tamanho


Você está preocupado em transferir ou fazer upload de arquivos grandes em uma rede, então não se preocupe mais, porque você pode mover seus arquivos em bits para lidar com velocidades lentas de rede, dividindo-os em blocos de um determinado tamanho.

Neste guia prático, exploraremos brevemente a criação de arquivos compactados e a divisão deles em blocos de um tamanho selecionado. Usaremos tar, um dos utilitários de arquivamento mais populares no Linux e também aproveitaremos o utilitário split para nos ajudar a quebrar nossos arquivos compactados em pequenos pedaços.

Antes de prosseguirmos, vamos observar como esses utilitários podem ser usados. A sintaxe geral de um comando tar e split é a seguinte:

tar options archive-name files 
split options file "prefix”

Vamos agora nos aprofundar em alguns exemplos para ilustrar o conceito principal deste artigo.

Exemplo 1: Podemos primeiro criar um arquivo da seguinte forma:

tar -cvjf home.tar.bz2 /home/aaronkilik/Documents/* 

Para confirmar que nosso arquivo foi criado e também verificar seu tamanho, podemos usar o comando ls:

ls -lh home.tar.bz2

Em seguida, usando o utilitário split, podemos dividir o arquivo home.tar.bz2 em pequenos blocos, cada um com tamanho 10MB da seguinte forma:

split -b 10M home.tar.bz2 "home.tar.bz2.part"
ls -lh home.tar.bz2.parta*

Como você pode ver na saída dos comandos acima, o arquivo tar foi dividido em quatro partes.

Nota: No comando split acima, a opção -b é usada para especificar o tamanho de cada bloco e o "home.tar.bz2.part" é o prefixo no nome de cada arquivo de bloco criado após a divisão.

Exemplo 2: Semelhante ao caso acima, aqui podemos criar um arquivo de imagem Linux Mint ISO.

tar -cvzf linux-mint-18.tar.gz linuxmint-18-cinnamon-64bit.iso 

Em seguida, siga as mesmas etapas do exemplo 1 acima para dividir o arquivo compactado em pequenos pedaços de tamanho 200MB.

ls -lh linux-mint-18.tar.gz 
split -b 200M linux-mint-18.tar.gz "ISO-archive.part"
ls -lh ISO-archive.parta*

Exemplo 3: Neste caso, podemos usar um pipe para conectar a saída do comando tar para dividir da seguinte forma:

tar -cvzf - wget/* | split -b 150M - "downloads-part"

Confirme os arquivos:

ls -lh downloads-parta*

Neste último exemplo, não precisamos especificar um nome de arquivo como você notou, basta usar um sinal -.

Como juntar arquivos Tar após a divisão

Depois de dividir com sucesso os arquivos tar ou qualquer arquivo grande no Linux, você pode juntar os arquivos usando o comando cat. Empregar cat é o método mais eficiente e confiável de realizar uma operação de união.

Para unir todos os blocos ou arquivos tar, emitimos o comando abaixo:


cat home.tar.bz2.parta* >backup.tar.gz.joined

Podemos ver que depois de executar o comando cat, ele combina todos os pequenos blocos que criamos anteriormente no arquivo tar original do mesmo tamanho.

Conclusão

A ideia toda é simples, como ilustramos acima, você simplesmente precisa saber e entender como usar as diversas opções dos utilitários tar e split.

Você pode consultar as páginas de entrada manual para aprender mais sobre outras opções e executar algumas operações complexas ou pode ler o artigo a seguir para aprender mais sobre o comando tar.

Não perca: 18 exemplos úteis de comando ‘tar’

Para qualquer dúvida ou mais dicas, você pode compartilhar suas idéias através da seção de comentários abaixo.