Создает ли tar новые иноды для архивации?

Создает ли tar новые иноды для архивации?

Когда tar просят архивировать каталог, создает ли он новый inode для каждого объекта файловой системы? Если да, то как он запрашивает и сохраняет метаданные? Не будет ли формат хранения этих метаданных inode отличаться от системы к системе? Как tar поддерживает согласованный вывод?

решение1

tarсоздает один файл (инод). Формат архива tarстандартизирован.

решение2

tarсоздает архив, один файл, который может содержать много других файлов и объектов. Таким образом, он будет состоять только из одного соответствующего inode.

В архиве tar tarпоследовательно хранятся метаданные каждого файла в заголовочном блоке, за которым следует содержимое файла в блоках данных. Этот заголовочный блок содержит информацию, которую вы обычно связываете с inode, но то, как они фактически хранят метаданные, остается на усмотрение исходной и целевой файловых систем.

Блок заголовка содержит (если имеется):

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

Связанный контент