.TAR 파일이란?
확장자가 .tar인 파일은 하나 이상의 파일을 수집하기 위해 Unix 기반 유틸리티로 만든 아카이브입니다. 아카이브에 파일 및 폴더 추가를 지원하여 여러 파일이 압축되지 않은 형식으로 저장됩니다. Unix의 TAR 유틸리티는 명령 기반이지만 따라서 생성된 파일은 거의 모든 운영 체제의 대부분의 파일 보관 시스템에서 지원됩니다. 1979년 AT&T Bell Laboratories에서 처음 만들어졌으며 시간이 지남에 따라 후속 버전이 출판되었습니다.
TAR 파일 형식
TAR은 개발자가 참조할 수 있는 전체 사양이 포함된 개방형 파일 형식입니다. 파일 구조는 POSIX.1-1988 및 이후 POSIX.1-2001에서 표준화되었습니다. tar에 의해 생성된 데이터 세트는 다음과 같은 파일 시스템 매개변수에 대한 정보를 유지합니다.
- 이름
- 타임스탬프
- 소유권
- 파일 접근 권한
- 디렉토리 구성
Tar 파일에는 매직 넘버가 없습니다. 여기에는 각 블록이 BLOCKSIZE 바이트인 일련의 블록이 포함됩니다.
아카이브된 각 파일은 파일을 설명하는 헤더 블록으로 표시되고 그 뒤에 파일 내용을 제공하는 0개 이상의 블록이 표시됩니다. 아카이브 파일의 끝에는 파일 끝 마커로 이진 0으로 채워진 두 개의 512바이트 블록이 있습니다. 합리적인 시스템은 아카이브의 끝에 그러한 파일 끝 마커를 작성해야 하지만 아카이브를 읽을 때 그러한 블록이 존재한다고 가정해서는 안 됩니다. 특히 GNU tar는 경고가 발생하지 않으면 항상 경고를 발행합니다.
블록은 물리적 I/O 작업을 위해 차단될 수 있습니다. n 블록의 각 레코드(여기서 n은 tar에 대한 blocking-factor = 512-size 옵션으로 설정됨)는 단일 “write()” 작업으로 작성됩니다. 자기 테이프에서 이러한 쓰기의 결과는 단일 레코드입니다. 아카이브를 작성할 때 블록의 마지막 레코드는 전체 크기로 작성되어야 하며 0 블록 이후의 블록은 모두 0을 포함해야 합니다. 아카이브를 읽을 때 합리적인 시스템은 마지막 레코드가 나머지보다 짧거나 0 블록 뒤에 가비지 레코드가 포함된 아카이브를 적절하게 처리해야 합니다.
타르 헤더
다른 파일 헤더와 마찬가지로 tar 파일 헤더 레코드에는 파일에 대한 메타데이터가 포함되어 있으며 다음 표에 나와 있습니다.
필드 오프셋 | 필드 크기(바이트) | 필드 |
---|---|---|
0 | 100 | 파일 이름 |
100 | 8 | 파일 모드 |
108 | 8 | 소유자의 숫자 사용자 ID |
116 | 8 | 그룹의 숫자 사용자 ID |
124 | 12 | 바이트 단위의 파일 크기(8진수) |
136 | 12 | 숫자 Unix 시간 형식(8진수)의 마지막 수정 시간 |
148 | 8 | 헤더 레코드의 체크섬 |
156 | 1 | 링크 표시기(파일 형식) |
157 | 100 | 링크된 파일의 이름 |
사용되지 않는 필드는 NUL 바이트로 채워집니다. 헤더는 512바이트 레코드로 채우기 위해 NUL 바이트로 채워진 257바이트로 구성됩니다.