Tar Gzip 아카이브 (.tar.gz)
POSIX.1 표준Tar Gzip(.tar.gz, .tgz로도 알려짐)은 리눅스 및 오픈소스 진영의 표준 소프트웨어 배포 및 아카이브 패키징 포맷으로, 유닉스 네이티브 TAR 패키징과 범용 Gzip 압축을 결합한 것입니다.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 TAR.GZ 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 TAR.GZ 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
1F 8B 08ASCII 표현: ..\x08
표준화: POSIX.1 ustar (RFC 1952 gzip wrapped)
기술 사양
| 컨테이너 아키텍처 | POSIX ustar / GNU tar archive stream wrapped inside an RFC 1952 Gzip compression container |
| 압축 | Two-stage packaging: TAR serialization followed by DEFLATE compression |
| 바이트 엔디안 | Little-Endian gzip envelope wrapping octal POSIX tar blocks |
| 색 공간 | N/A (Archive Container) |
| 채널 및 구조 | Multi-file Unix directory trees, symlinks, file ownership, and permission bits |
| 최대 크기 | Unbounded streaming archive size |
| 투명도 | 100% bit-exact lossless preservation of filesystem structures and data |
| 스트리밍 및 프로그레시브 | End-to-end pipeable streaming: decompress and extract simultaneously in a single pass |
기술 비교 매트릭스: TAR.GZ 대 경쟁사
| 기술적 속성 | TAR.GZ (현재) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| 유닉스 권한 | 100% 네이티브 POSIX 보존 | 제한적 / 종종 손실됨 | 기본 속성 보존 | 100% 네이티브 POSIX 보존 |
| 압축률 | 보통 (Gzip DEFLATE) | 보통 (ZIP DEFLATE) | 매우 높음 (LZMA2) | 높음 (Bzip2 BWT) |
| 압축 해제 속도 | 빠름 (~300 MB/s) | 빠름 (~300 MB/s) | 보통 (~100 MB/s) | 느림 (~40 MB/s) |
| 리눅스 생태계 표준 | 범용 오픈소스 기본값 | 소비자 데스크톱 기본값 | 윈도우 마니아 선호 | 레거시 리눅스 소스 배포판 |
일반적인 손상 모드 및 헥스 복구 가이드
명령줄에 'gzip: stdin: invalid compressed data--format violated' 메시지가 표시됨.
근본 원인: Gzip 엔벨로프의 손상된 바이트 또는 잘린 다운로드.
복구: File2File 아카이브 추출기 또는 'tar -izxf broken.tar.gz'를 사용하여 부분 복구를 시도하세요.
보안 분석 및 파서 공격 벡터
TAR.GZ 아카이브는 주의 없이 추출할 경우 압축 폭탄과 디렉터리 순회 공격의 위험을 모두 내포하고 있습니다.
알려진 공격 벡터
- 아주 작은 .tar.gz 파일이 테라바이트 규모의 0으로 팽창하는 압축 폭탄 스타일의 증폭.
- 권한이 있는 파일을 덮어쓰는 디렉터리 순회(예: '../../root/.ssh/authorized_keys').
- 루트(root) 권한으로 추출하는 동안 악성 디바이스 노드 생성.
방어적 모범 사례:
역사적 배경 및 주요 이력
주요 장점
- 오픈소스 소스 코드 배포판, 리눅스 패키지, 도커 컨테이너 레이어의 독보적인 표준.
- 완벽한 POSIX 권한 및 심볼릭 링크 보존과 신속하고 안정적인 Gzip 압축을 결합함.
- 완전한 스트리밍 지원: 임시 파일을 디스크에 쓰지 않고 네트워크 파이프를 통해 다운로드, 압축 해제 및 풀기가 가능함.
기술적 제한 사항 및 단점
- 단일 파일을 추출하려면 해당 파일의 위치까지 전체 아카이브를 압축 해제해야 함.
- .tar.xz나 .tar.zst 같은 최신 대안에 비해 압축률이 낮음.
- 범용 .zip 파일에 비해 구형 윈도우 시스템에서 직관성이 떨어짐.
흥미로운 기술적 상식
- 8.3 파일 이름 제한이 있던 MS-DOS 시스템에서는 '.tar.gz'가 '.tgz'로 단축되었습니다.
- 'npm install'을 실행할 때마다 npm은 백그라운드에서 .tgz (tar.gz) 패키지를 다운로드하고 추출합니다.
- 리눅스 사용자들은 'eXtract Ze File'이라는 연상기억법(tar -xzf file.tar.gz)으로 tar.gz 파일을 추출하는 명령어를 유명하게 기억합니다.
자주 묻는 기술 질문
.tar.gz와 .zip의 차이점은 무엇인가요?
.zip은 각 파일을 개별적으로 압축하며 끝에 중앙 디렉터리가 있습니다. .tar.gz는 모든 파일을 먼저 단일 스트림으로 결합하여전체 Linux 권한과 심볼릭 링크를 보존합니다.
.tgz는 .tar.gz와 같은가요?
네. .tgz는 .tar.gz의 3글자 약어 파일 확장자일 뿐이며, 원래는 DOS처럼 8.3 형식의 짧은 파일 이름 제한이 있는 운영 체제를 위해 만들어졌습니다.
Windows에서 .tar.gz 파일을 어떻게 추출할 수 있나요?
WinRAR이나 7-Zip을 설치할 필요 없이, 웹 브라우저에서 File2File.app을 사용하여 .tar.gz 파일을 직접 추출할 수 있습니다.