Puedes usar split para esto:
tar czpvf - /path/to/archive | split -d -b 100M - tardisk
Esto le dice a tar que envíe los datos a la salida estándar y los divida para seleccionarlos de la entrada estándar, además de usar un sufijo numérico (-d
), un tamaño de fragmento (-b
) de 100M y utilizando 'tardisk' como base para los nombres de archivo resultantes (tardisk00, tardisk01, tardisk02, etc.).
Para extraer los datos después, puede usar esto:
cat tardisk* | tar xzpvf -
Echa un vistazo al --new-volume-script
opción, que le permite reemplazar el mecanismo de solicitud con un mecanismo diferente o con un nombre de archivo generado. ((tar.info)Multi-Volume Archives
en el tar
página de información). El problema con split
es que necesitas cat
las piezas se vuelven a juntar para hacer cualquier cosa, mientras que un archivo de varios volúmenes debería ser un poco más flexible.
Por supuesto, la mejor opción para usar es el --new-volume-script
opción.
Pero, si conoce el tamaño del archivo (en este caso, largefile.tgz), también puede hacer esto:
tar -c -M -L 102400 --file=disk1.tar --file=disk2.tar --file=disk3.tar largefile.tgz
Resumen:
-c = Create
-M = multi-volume
-L 102400 = 100MB files (disk1.tar, disk2.tar, disk3.tar ...)
(Para -L, especifique tantos como sea necesario para que la suma total de los archivos tar sea mayor que largefile.tgz)
Si está intentando tar
una estructura de árbol de directorios