De acuerdo con esta página , uno puede dejar que tar cree un archivo tar "dividido" en archivos de 100 Mb:
tar -c -M --tape-length = 102400 --file = disk1.tar largefile.tgz
El problema es que este comando requerirá que proporciones interactivamente un nuevo nombre de archivo para el siguiente archivo, después de que se complete el primer archivo.
¿Alguien sabe de una manera de omitir este paso interactivo y dejar que tar se "divida" automáticamente?
Respuestas:
Eche un vistazo a la
--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 latar
página de información). El problemasplit
es que necesitacat
volver a unir las piezas para hacer cualquier cosa, mientras que un archivo multivolumen debería ser un poco más flexible.fuente
Puede usar dividir para esto:
Esto le dice a tar que envíe los datos a stdout y se divida para elegirlos desde stdin, además de usar un sufijo numérico (
-d
), un tamaño de fragmento (-b
) de 100M y usar 'tardisk' como base para los nombres de archivo resultantes (tardisk00, tardisk01, tardisk02, etc.).Para extraer los datos después, puede usar esto:
fuente
-d
es para sufijo numérico, no prefijo.Por supuesto, la mejor opción para usar es la
--new-volume-script
opción.Pero, si conoce el tamaño del archivo (en este caso, largefile.tgz), también puede hacer esto:
Resumen:
(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 directoriosfuente
Lo hice funcionar con los siguientes comandos:
El único problema es que en
part_1.tar
realidad será el último archivo, y los demás se desplazarán por uno. Es decir, enpart_2.tar
realidad es la primera parte, ypart_k.tar
es la(n - 1)
tercera parte. Arreglar esto con algún script de shell es trivial y se deja como un ejercicio para el lector.fuente
creará automáticamente archivos de tamaño 1.1GB, si su tar es más grande, puede aumentar el número, por ejemplo 1000 {2..1000} o puede aumentar la entrada al argumento de longitud de cinta.
fuente