tar가 디렉토리를 아카이브하라는 요청을 받으면 각 파일 시스템 객체에 대해 새 inode를 생성합니까? 그렇다면 메타데이터를 어떻게 쿼리하고 저장합니까? 이 inode 메타데이터를 저장하는 형식은 시스템마다 다양합니까? tar는 어떻게 일관된 출력을 유지합니까?
답변1
tar
단일 파일(inode)을 만듭니다. 아카이브 형식이 tar
표준화되어 있습니다.
답변2
tar
다른 많은 파일과 개체를 포함할 수 있는 단일 파일인 아카이브를 만듭니다. 따라서 관련 인덱스 노드가 하나만 포함됩니다.
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 */
};