當 tar 被要求歸檔目錄時,它是否為每個檔案系統物件建立一個新的 inode?如果是,它如何查詢和保存元資料?儲存此 inode 元資料的格式是否會因係統而異? tar 如何保持一致的輸出?
答案1
tar
建立單一檔案(索引節點)。檔案的格式tar
是標準化的。
答案2
tar
建立一個存檔,一個可以包含許多其他文件和物件的單一文件。因此,它僅包含一個相關的索引節點。
在 tar 檔案中,tar
每個檔案的元資料會依序儲存在標頭區塊中,然後將檔案的內容儲存在資料區塊中。此標頭區塊包含通常與索引節點關聯的訊息,但將其留給來源檔案系統和目標檔案系統來決定它們實際儲存元資料的方式。
標頭區塊包含(如果可用):
/* 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 */
};