¿Tar crea nuevos inodos para archivar?

¿Tar crea nuevos inodos para archivar?

Cuando se le pide a tar que archive un directorio, ¿crea un nuevo inodo para cada objeto del sistema de archivos? En caso afirmativo, ¿cómo consulta y guarda los metadatos? ¿El formato de almacenamiento de estos metadatos de inodo no variará de un sistema a otro? ¿Cómo mantiene tar una producción consistente?

Respuesta1

tarcrea un único archivo (un inodo). El formato de un tararchivo está estandarizado.

Respuesta2

tarcrea un archivo, un único archivo que puede contener muchos otros archivos y objetos. Como tal, sólo constará de un inodo relevante.

En el archivo tar tarse almacena secuencialmente los metadatos de cada archivo en un bloque de encabezado seguido del contenido del archivo en bloques de datos. Ese bloque de encabezado contiene la información que normalmente asociaría con un inodo, pero se deja en manos de los sistemas de archivos de origen y de destino cómo almacenan realmente los metadatos.

El bloque de encabezado contiene (si está disponible):

/* tar Header Block, from POSIX 1003.1-1990.  */  
/* POSIX header.  */

struct posix_header
{                              /* byte offset */
  char name[100];               /*   0 */
  char mode[8];                 /* 100 */
  char uid[8];                  /* 108 */
  char gid[8];                  /* 116 */
  char size[12];                /* 124 */
  char mtime[12];               /* 136 */
  char chksum[8];               /* 148 */
  char typeflag;                /* 156 */
  char linkname[100];           /* 157 */
  char magic[6];                /* 257 */
  char version[2];              /* 263 */
  char uname[32];               /* 265 */
  char gname[32];               /* 297 */
  char devmajor[8];             /* 329 */
  char devminor[8];             /* 337 */
  char prefix[155];             /* 345 */
                                /* 500 */
};

información relacionada