¿Cómo divido un archivo grande de + 4 GB en archivos más pequeños de aproximadamente 500 MB cada uno?
¿Y cómo los vuelvo a ensamblar para obtener el archivo original?
¿Cómo divido un archivo grande de + 4 GB en archivos más pequeños de aproximadamente 500 MB cada uno?
¿Y cómo los vuelvo a ensamblar para obtener el archivo original?
Respuestas:
Puedes usar split y cat .
Por ejemplo algo como
$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.
(donde está el nombre de archivo de entrada fooy 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 el shell clasifica los resultados del bloqueo del shell, y el número de partes no excede 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
man split cat md5sum
cat foo.{000..NNN}dónde NNNestá la última pieza esperada. De esa forma, recibirá un mensaje de error si falta una de las piezas. Pero tenga en cuenta que -dobtener sufijos numéricos es específico de la división GNU; en otras plataformas que tiene que conformarse con foo.aaa, foo.aab, etc.
split, KB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024, etc.
... cat > foo_3ser ... cat >>foo_3?
rary a 7zipmenudo se usan para hacer que tales divisiones sean más fáciles de volver a montar en plataformas cruzadas
También puede hacer esto con Archive Manager si prefiere una GUI. Busque en 'Guardar-> Otras opciones-> Dividir en volúmenes de'.