TAR 아카이브 (.tar)
POSIX.1-1988 표준Tape Archive(TAR)는 Unix와 Linux에서 널리 쓰이는 파일 패키징 형식입니다. 자기 테이프 백업과 소프트웨어 배포를 위해 여러 파일, 디렉터리 및 파일 시스템 메타데이터를 압축하지 않은 단일 스트림으로 묶습니다.
ZIP을(를) TAR(으)로 변환
무료 브라우저 내 ZIP에서 TAR로 변환하는 도구입니다. 기기에서 파일을 즉시 변환할 수 있습니다.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 TAR 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 TAR 파일을 식별합니다:
16진수 시그니처 (오프셋 257):
75 73 74 61 72ASCII 표현: ustar
표준화: POSIX.1-1988 (ustar) / POSIX.1-2001 (pax)
기술 사양
| 컨테이너 아키텍처 | 512바이트 파일 헤더 뒤에 파일 데이터를 512바이트 단위로 올림하여 기록하고, 마지막에 0 블록 두 개를 붙이는 구조 |
| 압축 | 압축되지 않은 아카이브 컨테이너(gzip, bzip2, xz 또는 zstd로 파이프 전달하도록 설계) |
| 바이트 엔디안 | 8진수 ASCII 문자열 필드와 빅 엔디안 숫자 확장 필드 |
| 색 공간 | 해당 없음(아카이브 컨테이너) |
| 채널 및 구조 | Unix 파일 디렉터리 트리, 심볼릭 링크, 하드 링크, 문자/블록 장치 및 FIFO 파이프 |
| 최대 크기 | 기존 ustar 형식은 최대 8GB, 최신 PAX 형식은 사실상 제한 없음 |
| 투명도 | POSIX 파일 권한, 소유자 UID/GID, 접근 시각 및 확장 속성을 모두 보존 |
| 스트리밍 및 프로그레시브 | 순차 스트림 방식으로 설계되어 물리 자기 테이프 드라이브에 직접 기록할 수 있음 |
기술 비교 매트릭스: TAR 대 경쟁사
| 기술적 속성 | TAR (현재) | ZIP | 7Z | CPIO |
|---|---|---|---|---|
| 기본 압축 | 없음 (순수 패키징 컨테이너) | 내장 Deflate 압축 | 내장 LZMA/LZMA2 압축 | 없음 (순수 패키징 컨테이너) |
| Unix 권한 보존 | 100% POSIX 속성, 심볼릭 링크, UID/GID | 제한적인 Unix 권한 지원 | 기본 권한 보존 | 100% POSIX 속성 |
| 스트리밍 추출 | 파이프에서 완전한 스트리밍 추출 가능 | EOF에서 중앙 디렉터리 읽기 필요 | 종료 헤더 읽기 필요 | 완전한 스트리밍 추출 |
| 파일에 대한 임의 접근 | 느림 (선형 순차 스캔) | 즉시 (중앙 디렉터리 조회) | 보통 (인덱스 조회) | 느림 (선형 순차 스캔) |
일반적인 손상 모드 및 헥스 복구 가이드
추출 오류: 'tar: Skipping to next header' 또는 'A lone zero block at X'.
근본 원인: 손상된 512바이트 블록 정렬 또는 스트림의 조기 종료.
복구: tar -i 옵션으로 손상된 블록을 무시하고 추출하거나 File2File.app Tar Tool로 복구하십시오.
보안 분석 및 파서 공격 벡터
TAR 추출기는 디렉터리 순회(Path Traversal) 공격을 통한 임의 파일 덮어쓰기를 방지하기 위해 파일 경로를 반드시 정화해야 합니다.
알려진 공격 벡터
- 추출 중 중요한 시스템 파일을 덮어쓰는 'Slip' 디렉터리 순회(예: '../etc/passwd').
- 시스템 디렉터리로 향하는 심볼릭 링크를 생성한 후 파일 쓰기를 수행하는 심볼릭 링크 경쟁 조건(Race Conditions).
- 순환 하드 링크 루프를 통한 서비스 거부(DoS).
방어적 모범 사례: 아카이브 경로를 엄격하게 정화하고 상위 디렉터리 참조(“..”)가 포함된 항목은 모두 거부하십시오.
역사적 배경 및 주요 이력
주요 장점
- POSIX 권한, 심볼릭 링크, 하드 링크, 소유권 등 Unix 파일 시스템의 완전한 충실도를 보존합니다.
- 스트리밍 가능한 테이프 지향 설계: 파일 끝으로 탐색할 필요 없이 네트워크 파이프에서 직접 추출할 수 있습니다.
- 모든 Linux 서버, 컨테이너 이미지(Docker/OCI), Unix 소프트웨어 배포판 간의 보편적인 표준입니다.
기술적 제한 사항 및 단점
- 기본 압축 기능 없음: 압축되지 않은 .tar 파일은 원본 파일들을 합친 것과 크기가 거의 같습니다.
- 임의 접근(Random Access)이 느림: 대용량 tar 파일 중간에서 단일 파일을 추출하려면 처음부터 스캔해야 합니다.
- 레거시 ustar 헤더는 100자가 넘는 파일 이름을 잘라냅니다(최신 PAX/GNU tar에서 해결됨).
흥미로운 기술적 상식
- 마법 바이트 'ustar'는 모든 512바이트 헤더 블록 내부의 바이트 오프셋 257에 위치합니다.
- TAR은 원래 9트랙 자기 릴 투 릴(reel-to-reel) 테이프 드라이브를 물리적으로 제어하기 위해 작성되었습니다.
- Docker 및 OCI 컨테이너 이미지는 루트 파일 시스템의 변경분을 포함하는 표준 .tar 아카이브를 실제로 여러 겹 쌓아 만든 것입니다.
자주 묻는 기술 질문
.tar 파일의 압축이 풀리지 않는 이유는 무엇입니까?
TAR은 아카이버일 뿐이며(여러 파일을 하나의 파일로 묶어줌) 자체적으로 압축을 수행하지 않습니다. 압축하려면 gzip과 결합하여 .tar.gz 파일을 만들어야 합니다.
ustar와 GNU tar는 어떻게 다릅니까?
Ustar는 100자의 파일 이름 제한이 있는 1988년 POSIX 표준이며, GNU tar는 무제한 경로 길이와 스파스(sparse) 파일을 지원하는 확장 형식입니다.
Windows에서 .tar 파일을 어떻게 열 수 있습니까?
Windows 10과 11은 명령줄('tar -xf file.tar')을 통해 tar를 기본 지원하며, 웹 브라우저에서 File2File.app을 사용하여 시각적으로 직접 추출할 수도 있습니다.
관련 TAR 변환 쌍
ZIP 아카이브를 TAR 아카이브로 변환하면 압축된 파일 컨테이너가 유닉스 환경에 적합한 비압축 테이프 아카이브 형식으로 바뀝니다.
TAR 아카이브를 ZIP 아카이브로 변환하면 비압축 유닉스 컨테이너가 보편적으로 접근 가능한 압축 파일 형식으로 바뀝니다.
TAR 아카이브를 GZIP 아카이브로 변환하면 무손실 DEFLATE 알고리즘을 사용하여 압축되지 않은 파일 모음을 단일 압축 스트림으로 감싸 파일 크기를 대폭 줄일 수 있습니다.
GZIP으로 압축된 TAR 아카이브(.tar.gz 또는 .tgz)에서 TAR 데이터를 추출합니다.