tar는 보관을 위해 새로운 inode를 생성합니까?

tar는 보관을 위해 새로운 inode를 생성합니까?

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

관련 정보