¿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 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 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 NNN
está la última pieza esperada. De esa forma, recibirá un mensaje de error si falta una de las piezas. Pero tenga en cuenta que -d
obtener 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_3
ser ... cat >>foo_3
?
rar
y a 7zip
menudo 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'.