Necesito comprimir un archivo grande de aproximadamente 17-20 GB. Necesito dividirlo en varios archivos de alrededor de 1 GB por archivo.
Busqué una solución a través de Google y encontré formas de usar split
y cat
comandos. Pero no funcionaron para archivos grandes en absoluto. Además, no funcionarán en Windows; Necesito extraerlo en una máquina con Windows.
Respuestas:
Puede usar el
split
comando con la-b
opción:Se puede volver a montar en una máquina con Windows utilizando la respuesta de @ Joshua .
Editar : como dijo @Charlie en el comentario a continuación, es posible que desee establecer un prefijo explícitamente porque usará lo
x
contrario, lo que puede ser confuso.Editar : Editar la publicación porque la pregunta está cerrada y la solución más efectiva está muy cerca del contenido de esta respuesta:
Esta solución evita la necesidad de utilizar un archivo grande intermedio al (des) comprimir. Use la opción tar -C para usar un directorio diferente para los archivos resultantes. Por cierto, si el archivo consta de un solo archivo, se podría evitar tar y solo se usaría gzip:
Para Windows, puede descargar versiones portadas de los mismos comandos o usar cygwin.
fuente
-b 1024MiB
dio un error de que era un número de bytes no válido. Utilizando--bytes=1024m
obras.cat
para volver a armar el archivo. Puede usarcopy /b file1 + file2 + etc..
en Windows, luego copiar de nuevo a Linux y tar puede leer el tarball reensamblado. Solo lo intenté.--numeric-suffixes
: usar sufijos numéricos en lugar de alfabéticos.Si se está separando de Linux, aún puede volver a ensamblar en Windows.
fuente
copy /b file* filetogether
: support.microsoft.com/kb/71161usar tar para dividir en múltiples archivos
Hay muchos programas que funcionarán con archivos tar en Windows, incluido Cygwin.
fuente
El código probado, inicialmente crea un único archivo de almacenamiento, luego lo divide:
Esta variante omite la creación de un solo archivo de almacenamiento y va directamente a la creación de partes:
En esta variante, si el tamaño del archivo del archivo es divisible por
$CHUNKSIZE
, entonces el último archivo parcial tendrá un tamaño de archivo de 0 bytes.fuente
split
que ya hace.