본문 바로가기

생활 속 궁금증

tar 파일 압축 푸는 법, 윈도우에서 한글 이름 오류 날 때

반응형

리눅스 서버에서 받은 파일, 깃허브에서 내려받은 소스, 백업 묶음이 .tar 나 .tar.gz 로 와서 어떻게 여는지 막힐 때가 있습니다. 지금 윈도우에는 tar 를 푸는 도구가 이미 들어 있습니다. 다만 리눅스에서 만든 tar 는 한글 이름 때문에 윈도우 tar 명령이 실패할 수 있어서, 그때 쓰는 방법까지 정리했습니다.

이 글의 결과는 모두 이 PC(윈도우 11)에서 직접 만들고 풀어 본 것입니다(2026년 10월 31일).


결론부터

  • tar 는 여러 파일을 하나로 묶은 파일이고, .tar.gz·.tgz·.tar.xz 는 그 묶음을 한 번 더 압축한 것입니다
  • 윈도우 11 24H2 이상은 탐색기에서 오른쪽 클릭 → 모두 추출로 풉니다(마이크로소프트 지원 문서)
  • 명령으로는 tar -xf 파일이름 하나면 .tar·.tar.gz·.tgz·.tar.bz2·.tar.xz·.tar.zst 가 모두 풀렸습니다
  • 리눅스에서 만든 tar 가 'Invalid empty pathname' 오류로 한 개도 안 풀리면 --options hdrcharset=UTF-8 을 붙이거나 탐색기로 풉니다
  • 이름이 .gz 하나뿐인 파일(.tar.gz 아님)은 tar 명령이 못 풀었고, 탐색기는 풀었습니다

1. tar, tar.gz, tgz 는 무엇이 다른가

tar 는 파일 여러 개와 폴더 구조를 압축 없이 하나로 이어 붙인 묶음입니다. 그래서 이 PC 에서 만든 .tar(313,344바이트)는 원본(301,816바이트)보다 오히려 조금 컸습니다. 이 묶음을 gzip 으로 압축하면 .tar.gz(줄여서 .tgz), bzip2 면 .tar.bz2, xz 면 .tar.xz, zstd 면 .tar.zst 가 됩니다.

파일 맨 앞 바이트를 보면 구별됩니다. gzip 은 1F 8B, xz 는 FD 37 7A 58 5A, zstd 는 28 B5 2F FD, bzip2 는 42 5A 68(BZh)로 시작했고, 압축하지 않은 tar 는 257번째 바이트부터 'ustar' 가 적혀 있었습니다.


2. 탐색기로 풀기 — 윈도우 11 24H2 이상

마이크로소프트 지원 문서 '파일 압축 및 압축 해제'는 윈도우 11 버전 24H2 가 ZIP·RAR·7z·TAR 형식을 지원한다고 적고 있습니다. 푸는 법은 zip 과 같습니다.

  1. tar 파일을 오른쪽 클릭
  2. 모두 추출… 을 고르고 풀 위치 지정

이 PC(윈도우 11 26H2)에서는 6가지 형식이 모두 탐색기 압축 폴더로 열렸고, .tar.gz 를 실제로 풀어 보니 한글 이름 파일 4개가 그대로 나왔습니다. 같은 문서에 따르면 암호가 걸린 압축 파일은 지원하지 않습니다.

이 PC 는 알집이 설치돼 있어 .tar·.gz 확장자가 알집에 연결돼 있었습니다. 다른 압축 프로그램을 깔아 둔 PC 는 더블클릭하면 그 프로그램이 열릴 수 있으니, 탐색기로 풀려면 오른쪽 클릭 메뉴를 씁니다.


3. 명령으로 풀기 — tar -xf

윈도우 10 빌드 17063 부터 들어간 tar 명령(마이크로소프트 명령줄 블로그, 2018년)은 이 PC 에서 bsdtar 3.8.9 였습니다. 명령 프롬프트나 PowerShell 에서 tar 파일이 있는 폴더로 가서 이렇게 칩니다.

tar -xf 파일이름.tar.gz

다른 폴더에 풀려면 -C 뒤에 폴더를 적습니다. 그 폴더는 미리 있어야 합니다 — 없는 폴더를 적으면 'could not chdir' 오류가 났습니다.

tar -xf 파일이름.tar.gz -C D:\풀폴더

풀기 전에 안에 무엇이 들었는지만 보려면 -tf 를 씁니다.

tar -tf 파일이름.tar.gz

.tar.gz 인지 .tar.xz 인지 따로 알려 주지 않아도 -xf 하나로 6가지가 모두 풀렸습니다. zip 파일 이름을 .tar 로 바꿔 놓은 것도 풀렸습니다 — 확장자가 아니라 파일 내용으로 형식을 알아보는 것으로 보입니다.


4. 'Invalid empty pathname' 오류 — 리눅스에서 만든 tar

리눅스의 GNU tar 기본 형식처럼 한글 이름을 UTF-8 그대로 넣은 tar 를 만들어 윈도우 tar 로 풀자, 모든 항목에서 'Invalid empty pathname' 오류가 나고 파일이 하나도 풀리지 않았습니다(종료 코드 1). 오류 속 이름은 '?먮즺' 처럼 깨져 있었습니다. tar -tf 로 목록을 보면 같은 깨진 이름이 보여서 미리 알 수 있습니다.

이름을 UTF-8 로 읽으라고 알려 주면 풀립니다.

tar --options hdrcharset=UTF-8 -xf 파일이름.tar

이렇게 하자 4개 모두 한글 이름 그대로 풀렸습니다. libarchive 문서는 hdrcharset 을 '파일 이름을 바꿀 때 쓸 문자 집합 이름'이라고 설명합니다. 명령이 번거로우면 탐색기의 모두 추출로 풀어도 같은 파일이 이름 그대로 풀렸습니다.

윈도우 tar 로 만든 tar 나 PAX 형식 tar 는 옵션 없이도 잘 풀렸습니다. 이 PC 의 윈도우 tar 는 한글 이름이 있으면 PAX 머리글을 붙여 저장했습니다(파일이 'PaxHea' 로 시작).


5. 그 밖에 안 풀릴 때

증상 원인 · 할 일
Unrecognized archive format .gz 하나뿐인 파일(tar 아님) — 탐색기 모두 추출로 풀림
could not chdir -C 뒤 폴더가 없음 — 폴더를 먼저 만들기
Failed to open 파일 이름·위치가 틀림 — 그 폴더에서 실행하거나 전체 경로
Invalid empty pathname 리눅스 tar 의 한글 이름 — hdrcharset=UTF-8 또는 탐색기
암호를 물음 탐색기는 암호 압축 미지원(마이크로소프트 문서) — 7-Zip 같은 프로그램

Git Bash 를 설치한 PC 라면 Git Bash 창에서 tar 를 치면 윈도우 tar 대신 Git 에 들어 있는 GNU tar 1.35 가 실행됐고, 이것은 리눅스 tar 를 옵션 없이 풀었습니다.


같이 보면 좋은 글


참고 (2026-10-31 확인)

  • 마이크로소프트 지원 — 파일 압축 및 압축 해제(윈도우 11 24H2: ZIP·RAR·7z·TAR, 암호화된 보관 파일 미지원, 모두 추출)
  • 마이크로소프트 명령줄 블로그 — Tar and Curl Come to Windows!(2018-01-18, 윈도우 10 Insider 빌드 17063 이후)
  • libarchive — archive_read_set_options(3) tar 형식 hdrcharset
  • 실측: 이 PC(윈도우 11 빌드 26300) — System32 tar.exe(bsdtar 3.8.9)로 형식 6가지 만들고 풀기, 리눅스 GNU 형식·PAX 형식 tar, 탐색기(셸) 열기·모두 추출, 오류 문구, 확장자 연결
반응형