phpsource/파일분석2002. 9. 9. 15:23
TAR 아카이브는 512바이트를 1블록으로하여 다루게 됩니다. 따라서 TAR 아카이브의 크기를 보면 512 * n 바이트임을 알 수 있습니다. TAR 아카이브는 여러 개의 파일이 하나로 묶여있으므로 각 멤버파일마다 본문 내용에 앞서 파일에 대한 정보를 기록하게 되는 1블록의 헤더가 반드시 나타나며 그 뒤를 이어 n블록의 본문 내용이 나타납니다. 때에 따라서는 하나의 디렉토리에 있는 파일뿐만 아니라 다른 디렉토리에 있는 파일들도 하나의 TAR 아카이브에 묶을 때도 있을 것입니다. 이러한 경우에는 디렉토리에 대한 정보도 기록하여야 하는데 이 경우에도 파일 헤더와 같이 1블록의 디렉토리 헤더를 가지게 됩니다. 디렉토리의 경우에는 파일과는 달리 본문 내용이 없으므로 각 디렉토리마다 1블록의 디렉토리 헤더만이 존재합니다. 파일 및 디렉토리에 관한 모든 정보(헤더 및 본문)가 다 기록된 후에는 마지막으로 아스키 0으로 채워진 1블록 이상의 빈블록(empty block)들이 붙여지게 됩니다.
이젠 몇가지 실예를 들어 전체 구조가 어떻게 구성되는지 살펴보겠습니다.
동일한 디렉토리에 있는 파일들(디렉토리 정보를 기록하지 않을 때)
아래와 같이 동일한 디렉토리에 있는 세 개의 파일(s1.txt, s2.txt, s3.txt)을 디렉토리 정보를 기록하지 않고 파일정보만 기록된 TAR 아카이브의 구조를 살펴보겠습니다.
s1.txt
s2.txt
s3.txt
s1.txt, s2.txt, s3.txt 파일이 모두 동일한 디렉토리에 존재하며 이를 묶을 때 디렉토리 정보를 전혀 기록하지 않는다면 TAR 아카이브의 전체 구조는 아래와 같을 것입니다.

s1.txt 파일 헤더

s1.txt 파일 본문

 

 

 

s2.txt 파일 헤더

s2.txt 파일 본문

 

 

 

s3.txt 파일 헤더

s3.txt 파일 본문

 

 

 

빈 블록

 

 

 

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

n 블록 (512 * n 바이트)

동일한 디렉토리에 있는 파일들(디렉토리 정보를 기록할 때)
아래와 같이 동일한 디렉토리에 있는 세 개의 파일(s1.txt, s2.txt, s3.txt)을 디렉토리 정보와 함께 기록된 TAR 아카이브의 구조를 살펴보겠습니다.
sub/s1.txt
sub/s2.txt
sub/s3.txt
s1.txt, s2.txt, s3.txt 파일이 모두 동일한 디렉토리 sub에 존재하며 이를 묶을 때 디렉토리 정보 sub를 기록한다면 TAR 아카이브의 전체 구조는 아래와 같을 것입니다.

sub 디렉토리 헤더

s1.txt 파일 헤더

s1.txt 파일 본문

 

 

 

s2.txt 파일 헤더

s2.txt 파일 본문

 

 

 

s3.txt 파일 헤더

s3.txt 파일 본문

 

 

 

빈 블록

 

 

 

1 블록 (512 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

n 블록 (512 * n 바이트)

여러 개의 디렉토리에 있는 파일들
s1.txt
s2.txt
sub1/s3.txt
sub1/sub2/s4.txt
sub1/sub2/s5.txt
sub1/sub2/sub3/s6.txt
sub4/s7.txt
s1.txt, s2.txt, s3.txt 파일이 여러 개의 디렉토리에 분산되어 존재하며 이를 묶을 때 이들 디렉토리 정보를 함께 기록한다면 TAR 아카이브의 전체 구조는 아래와 같을 것입니다.

s1.txt 파일 헤더

s1.txt 파일 본문

 

 

 

s2.txt 파일 헤더

s2.txt 파일 본문

 

 

 

sub1 디렉토리 헤더

s3.txt 파일 헤더

s3.txt 파일 본문

 

 

 

sub2 디렉토리 헤더

s4.txt 파일 헤더

s4.txt 파일 본문

 

 

 

s5.txt 파일 헤더

s5.txt 파일 본문

 

 

 

sub3 디렉토리 헤더

s6.txt 파일 헤더

s6.txt 파일 본문

 

 

 

sub4 디렉토리 헤더

s7.txt 파일 헤더

s7.txt 파일 본문

 

 

 

빈 블록

 

 

 

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

1 블록 (512 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

1 블록 (512 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

1 블록 (512 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

1 블록 (512 바이트)

1 블록 (512 바이트)

n 블록 (512 * n 바이트)

n 블록 (512 * n 바이트)


'phpsource > 파일분석' 카테고리의 다른 글

{TAR 파일}4.본문 구조  (0) 2002.09.09
{TAR 파일}3.헤더 구조  (1) 2002.09.09
{TAR 파일}1.개요  (0) 2002.09.09
{HTML 파서}5.다운로드  (0) 2001.07.24
{HTML 파서}4.배열 구조의 구성  (0) 2001.07.24
Posted by 방글24