Bash: Concatenación de bolas TAR

Bash: Concatenación de bolas TAR

¿Es válido hacer esto?

{
tar -c dir1
tar -c dir2
} | cat > file.tar

¿El archivo.tar resultante es una bola de alquitrán válida?
Si no, ¿cómo puedo concatenar bolas de alquitrán sobre la marcha?

Respuesta1

Sí, con una ligera modificación de su método.

tar admite la concatenación de múltiples archivos tar juntos... recuerde su historia... es un ARCHIVO DE CINTA... es un flujo de datos, que recuerda a un carrete de cinta que pasa zumbando por el cabezal de lectura/escritura... sólo bloques de datos para el programa tar...

Por lo que muestran mis pruebas, debes tener al menos UN archivo tar en alguna parte...

tar cf one.tar buncha files to add

Desde este punto... puedes agregar más archivos o agregar otro tar (o varios...)

tar rf one.tar even more files to fill up this pseudo tape
tar Af one.tar two.tar three.tar four.tar

Todo se reduce a 'one.tar' en este ejemplo...

si usas el 'rf', agrega nuevos archivos al tar dado (uno.taraquí), mientras que si usas elAf, agrega uno o más archivos tar al archivo tar original (¡urk! tar recursivo! ¡pegajoso!)

Como siempre, las páginas de manual son tus amigas. (lentos, débilmente brillantes amigos verdes fósforo... pero amigos)

Respuesta2

No puedes simplemente concatenar archivos tar como este, no se comportará como esperarías. Puedes verificar el contenido del tarball usando:

tar tf file.tar

Esto solo imprimiría el contenido de dir1without dir2. Para archivar dos directorios dir1y dir2en file.tar, puede usar:

tar cf file.tar dir1 dir2

El manual está disponible enhttp://www.gnu.org/software/tar/manual/

información relacionada