Você pode dividi-lo com split
, mas as peças individuais não farão sentido até serem colocadas juntas. Se você quiser dividi-lo em arquivos independentes, precisará descompactá-lo.
Eu tenho um arquivo tar.gz que contém alguns milhões de arquivos. Eu quero dividir o conteúdo sem descompactá-lo devido a um limite no número de arquivos. Existe uma maneira de dividir um arquivo tar / tar.gz em vários tar / tar.gz.
se não for possível, pode ser feito em python?
1º post, deixe-me saber se fiz algo errado.
Edit: Eu não quero colocá-lo de volta. Eu quero ser capaz de trabalhar em cada arquivo 'dividido'.
Você pode dividi-lo com split
, mas as peças individuais não farão sentido até serem colocadas juntas. Se você quiser dividi-lo em arquivos independentes, precisará descompactá-lo.
A divisão é a ferramenta certa para isso.
Para dividir um arquivo em blocos de 10 MB
split -b10m /path/to/file parts
Para juntar tudo
cat parts* > file
Não é possível dividir o arquivo compactado tar
em partes sem descompactação: a compactação é aplicada na parte superior do 'fluxo tar' e esse fluxo é tratado por um compressor como um fluxo binário opaco.
Assim, qualquer ferramenta que possa produzir um conjunto de arquivos tar do seu arquivo tar comprimido original irá descompactá-lo.
O tar
em si não tem um modo que use tar archive
como entrada e produz outro tar
como um arquivo de saída, além dos modos append
e delete
.
Como seu arquivo tar é muito grande, você provavelmente não deseja descompactá-lo várias vezes para extrair um arquivo por porção enquanto cria um arquivo separado para cada conjunto de arquivos extraídos.
Existe uma biblioteca de tar do python que provavelmente permite o processamento de arquivos tar em 'voo' (eu sou não é tão strong em python
para verificar isso sozinho). Assim, você pode desenvolver um script python que leia itens do arquivo de origem e, em seguida, anexe-os ao arquivo de saída atual até que seu tamanho atinja um limite de sua escolha. Então, o script criaria o próximo arquivo de saída e prosseguirá.
Tags tar