Linux: ¿Cómo dividir un archivo grande en archivos más pequeños?

10

Tengo un archivo gigante (> 20 gigas) en mi máquina de origen y necesito transferirlo a mi máquina de destino. A los fines de esta pregunta, supongamos que no tengo conectividad de red entre las dos máquinas.

Necesito dividir este archivo en una serie de archivos más pequeños, escribir los archivos más pequeños en DVD (s) y luego volver a ensamblar todo en la máquina de destino.

Tanto las máquinas de origen como las de destino son cajas Linux. ¿Hay alguna manera de lograr esto usando tar? Tengo la sensación de que necesito usar el --multi-volumeparámetro. ¿Cuáles son mis opciones?

Necesito poder especificar el tamaño de los archivos de volumen, para asegurarme de que cada uno se ajuste a un solo DVD.

¡Gracias!

Runcible
fuente

Respuestas:

14

Usa el comando dividir.

split -b 22 m newfile.txt new dividiría el archivo "newfile.txt" en tres archivos separados llamados newaa, newab y newac, cada archivo del tamaño de 22 MB.

duffbeer703
fuente
3
Tenga cuidado de crear el prefijo "nuevo" que comparte con el archivo original "newfile.txt". ¡Ahora, cuando intentes hacerlo cat new* > newfile.txt, explotará!
Robert Martin
@RobertMartin ¡Buena captura!
duffbeer703
6

Se han cubierto otras respuestas splitpara combinarlas en un archivo maestro que acaba de usar cat.

koenigdmj
fuente
3

Esto se puede hacer fácilmente usando split , que ya debería estar disponible en la base de su distribución ya que es parte de gnu coreutils .

Jan Jungnickel
fuente
0

split -b 4000000000 nombre_archivo

Creará cada archivo de 4 GB


fuente