
우리는 일반적으로 압축이 공간이나 전송 시간을 절약하기 위해 데이터 크기를 줄이는 것이라고 알고 있으므로 압축 파일을 추출하면 크기가 더 커질 것으로 예상됩니다. tar 형식(95KB)의 파일을 다운로드했고 압축을 풀면 크기가 줄어들었고(5.7KB) 그 아래에는 현재 0byte까지 표시되는 다른 파일도 있었습니다. 그 이유는 무엇일까요?
답변1
Tar 형식은 압축되지 않습니다. 그러나 아카이브의 각 파일이나 디렉터리 시작 부분에 헤더를 추가합니다. 헤더는 tar에서 파일 이름, 타임스탬프 등을 알려주는 데 사용됩니다. 해당 정보는 파일 내부 데이터의 일부가 아니지만 tar는 파일을 다시 생성하는 데 필요합니다. 각 헤더는 일반적으로 512바이트이지만 파일 이름이 100자를 초과하는 경우 더 커질 수 있습니다. tar 아카이브의 끝은 빈 헤더로 표시됩니다. 이러한 헤더는 일반적으로 아카이브와 아카이브에서 추출된 모든 항목 간의 크기 차이를 설명합니다.
tar 헤더의 크기로 설명할 수 없는 차이가 있을 수도 있지만 대부분 특수한 경우이므로 tar 파일이나 적어도 그 목록을 보지 않고는 진단하기 어렵습니다. 큰 차이점, 즉 거대한 tar 파일이 있지만 추출된 내용이 거의 없는 경우에 대한 한 가지 가능한 설명은 아카이브에 동일한 파일의 복사본이 많이 포함되어 있는 경우입니다. 누군가 백업 전략으로 마지막에 계속해서 최신 버전을 추가하는 경우 이런 일이 발생할 수 있습니다. tar 추출은 더 많은 공간을 사용하지 않고 매번 동일한 파일을 계속 덮어쓰게 됩니다.