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)
기술 사양
| 컨테이너 아키텍처 | Sequence of 512-byte blocks: 512-byte file header followed by file data rounded up to 512 bytes, ending with two zero blocks |
| 압축 | Uncompressed archive container (designed to be piped into gzip, bzip2, xz, or zstd) |
| 바이트 엔디안 | Octal ASCII string fields; big-endian numeric extensions |
| 색 공간 | N/A (Archive Container) |
| 채널 및 구조 | Unix file directory tree, symlinks, hardlinks, character/block devices, and FIFO pipes |
| 최대 크기 | 8 GB limit in classic ustar; practically unlimited in modern PAX format |
| 투명도 | Full preservation of POSIX file permissions, owner UID/GID, access times, and extended attributes |
| 스트리밍 및 프로그레시브 | Sequential stream-oriented design: can be written directly to physical magnetic tape drives |
기술 비교 매트릭스: 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 Tar Tool로 복구합니다.
보안 분석 및 파서 공격 벡터
TAR 추출기는 디렉터리 순회(Path Traversal) 공격을 통한 임의 파일 덮어쓰기를 방지하기 위해 파일 경로를 반드시 살균(Sanitize)해야 합니다.
알려진 공격 벡터
- 추출 중 중요한 시스템 파일을 덮어쓰는 '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 아카이브로 변환하면 압축 계층이 제거되어 압축되지 않은 원시 파일 및 폴더 모음이 드러납니다.