¿Cómo divido un archivo grande + 4GB en archivos más pequeños de aproximadamente 500MB cada uno?.
¿Y cómo puedo volver a ensamblar nuevamente para obtener el archivo original?
Puede usar split y cat .
Por ejemplo algo como
$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.
(donde el nombre de archivo de entrada es foo
y el último argumento es el prefijo de salida). Esto creará archivos como foo.000 foo.001
...
El mismo comando con opciones cortas:
$ split -b 100k -d -a 3 foo foo
También puede especificar "--line-bytes" si desea que se divida en los límites de la línea en lugar de solo el número exacto de bytes.
Para volver a ensamblar las piezas generadas, puede usar, por ejemplo:
$ cat foo.* > foo_2
(suponiendo que Shell clasifique los resultados del bloqueo de Shell, y que el número de partes no exceda el límite de argumentos dependiente del sistema)
Puede comparar el resultado a través de:
$ cmp foo foo_2
$ echo $?
(que debería generar 0)
Alternativamente, puede usar una combinación de find/sort/xargs para volver a ensamblar las piezas:
$ find -maxdepth 1 -type f -name 'foo.*' | sort | xargs cat > foo_3
También puede hacerlo con Archive Manager si prefiere una GUI. Busque en 'Guardar-> Otras opciones-> Dividir en volúmenes de'.