O tar cria novos inodes para serem arquivados?

O tar cria novos inodes para serem arquivados?

Quando o tar é solicitado a arquivar um diretório, ele cria um novo inode para cada objeto do sistema de arquivos? Se sim, como consulta e salva os metadados? O formato de armazenamento desses metadados de inode não variará de sistema para sistema? Como o tar mantém uma saída consistente?

Responder1

tarcria um único arquivo (um inode). O formato de um tararquivo é padronizado.

Responder2

tarcria um arquivo, um único arquivo que pode conter muitos outros arquivos e objetos. Como tal, consistirá apenas em um inode relevante.

No arquivo tar tararmazena sequencialmente os metadados de cada arquivo em um bloco de cabeçalho seguido pelo conteúdo do arquivo em blocos de dados. Esse bloco de cabeçalho contém as informações que você normalmente associaria a um inode, mas é deixado para os sistemas de arquivos de origem e de destino como eles realmente armazenam metadados.

O bloco de cabeçalho contém (se disponível):

/* 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 */
};

informação relacionada