Erstellt Tar neue Inodes zum Archivieren?

Erstellt Tar neue Inodes zum Archivieren?

Wenn Tar aufgefordert wird, ein Verzeichnis zu archivieren, erstellt es dann für jedes Dateisystemobjekt einen neuen Inode? Wenn ja, wie werden die Metadaten abgefragt und gespeichert? Ist das Format zum Speichern dieser Inode-Metadaten nicht von System zu System unterschiedlich? Wie sorgt Tar für eine konsistente Ausgabe?

Antwort1

tarerstellt eine einzelne Datei (einen Inode). Das Format eines tarArchivs ist standardisiert.

Antwort2

tarerstellt ein Archiv, eine einzelne Datei, die viele andere Dateien und Objekte enthalten kann. Daher besteht es nur aus einem relevanten Inode.

Im Tar-Archiv tarwerden die Metadaten jeder Datei sequenziell in einem Headerblock gespeichert, gefolgt vom Inhalt der Datei in Datenblöcken. Dieser Headerblock enthält die Informationen, die Sie normalerweise mit einem Inode verknüpfen würden, aber es bleibt den Quell- und Zieldateisystemen überlassen, wie diese Metadaten tatsächlich speichern.

Der Header-Block enthält (falls verfügbar):

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

verwandte Informationen