Eu tenho um grande arquivo .gz. Gostaria de dividi-lo em 100 arquivos gzip menores, que podem ser descomprimidos por si só. Em outras palavras: não estou procurando uma maneira de dividir o arquivo .gz em partes que precisariam ser reunidas para poder descompactá-lo. Quero poder descomprimir cada um dos arquivos menores independentemente.
Isso pode ser feito sem recomprimir o arquivo inteiro?
Isso pode ser feito se o arquivo original estiver compactado --rsyncable
? ("Atenda melhor ao programa rsync redefinindo periodicamente a estrutura interna do fluxo de dados compactados." Parece que esses pontos de redefinição podem ser bons lugares para se dividir e provavelmente incluir um cabeçalho.)
Isso pode ser feito para qualquer outro formato compactado? Eu imagino bzip2
que seria factível - como é comprimido em blocos.
gzip --rsyncable
certa, dado que “o gunzip não pode dizer a diferença” (se você pudesse encontrar um lugar para se dividir, poderia dizer que há um lugar para se dividir). Pode ser possível com o bzip2 devido ao seu peculiar recurso de bloco.gzip -d -c bigfile.gz
.bzip2
arquivo. Seria possível comgz
ouxz
somente comprimindo cada pedaço independentemente, portanto isso exigiria uma recompressão.Respostas:
A divisão e a junção do arquivo grande funcionam, mas é impossível descompactar partes do arquivo compactado, porque informações essenciais são distribuídas por todo o conjunto de dados. Outra maneira; divida o arquivo descompactado e comprima as partes únicas. Agora você pode descomprimir cada peça. Mas por que? Você precisa mesclar todas as peças descomprimidas antes de continuar o processamento.
fonte
gzip
ouxz
), pode fazer concatenação e descompressão, ou descompressão e concatenação. A ordem não importa.