División de archivos gzip en archivos gz más pequeños sin volver a comprimir

9

Tengo un gran archivo .gz. Me gustaría dividirlo en 100 archivos gzip más pequeños, que pueden descomprimirse por sí mismos. En otras palabras: no estoy buscando una forma de cortar el archivo .gz en trozos que tendrían que volver a unirse para poder descomprimirlo. Quiero poder descomprimir cada uno de los archivos más pequeños de forma independiente.

¿Se puede hacer sin volver a comprimir todo el archivo?

¿Se puede hacer si el archivo original está comprimido --rsyncable? ("Se adapta mejor al programa rsync restableciendo periódicamente la estructura interna del flujo de datos comprimido". Parece que estos puntos de restablecimiento podrían ser buenos lugares para dividirse y probablemente anteponer un encabezado).

¿Se puede hacer para cualquiera de los otros formatos comprimidos? Me imagino bzip2que sería factible, ya que está comprimido en bloques.

Ole Tange
fuente
¿Has probado split -b?
George Vasiliou
3
@GeorgeVasiliou No generará archivos gzip más pequeños que puedan descomprimirse.
Ole Tange
La respuesta a su primera pregunta es no, esto se ha cubierto en Eliminar la última línea del archivo gz . La respuesta es probablemente no con la mayoría de los formatos comprimidos, ya que lo que está pidiendo va en contra de la compresión. Creo que la respuesta también es negativa gzip --rsyncabledado que "gunzip no puede notar la diferencia" (si pudieras encontrar un lugar para dividir, podrías decir que hay un lugar para dividir). Puede ser factible con bzip2 debido a su peculiar característica de bloqueo.
Gilles 'SO- deja de ser malvado'
Esto puede ayudar: stackoverflow.com/a/22628945/4941495 Simplemente deje que el flujo de entrada estándar sea la salida de gzip -d -c bigfile.gz.
Kusalananda
Sin volver a comprimir, sería factible con un bzip2archivo de hecho. Sería factible con gzo xzsolo comprimiendo cada fragmento de forma independiente, por lo que esto requeriría una recompresión.
xhienne

Respuestas:

0

La división y unión del archivo grande funciona, pero es imposible descomprimir partes del archivo comprimido, porque la información esencial se distribuye por todo el conjunto de datos. De otra manera; dividir el archivo sin comprimir y comprimir las partes individuales. Ahora puedes descomprimir cada pieza. ¿Pero por qué? Debe fusionar todas las partes descomprimidas antes de seguir procesando.

ingopingo
fuente
1
Dato curioso: cuando tiene las partes comprimidas individualmente (usando gzipo xz), puede hacer concatenación y descompresión, o descompresión y concatenación. El orden no importa.
Kusalananda
Tal vez, depende de los datos. Si divide y comprime imágenes de disco, tiene la oportunidad de recuperar partes del sistema de archivos. Si primero comprime y luego se divide, definitivamente no tiene ninguna posibilidad.
ingopingo
No, y esa tampoco era mi premisa. Acabo de decir que el orden en que realiza la concatenación y descompresión cuando tiene partes comprimidas individualmente no importa (esto se debe a los formatos de archivo comprimido). Si se comprime primero, luego se divide, entonces obviamente es necesario recombinar primero.
Kusalananda
Oh! Eso es genial. Funciona, ¡aunque cada parte contiene un encabezado de archivo individual!
ingopingo