/엔지니어/OS / 시스템/리눅스 압축·해제 완전 가이드 — tar · gzi
OS / 시스템초급UbuntuDebianCentOSmacOStargzipzip

리눅스 압축·해제 완전 가이드 — tar · gzip · zip · 7z · zstd

tar, gzip, bzip2, xz, zip, 7z 각 형식의 압축·해제 명령과 용도별 선택 기준을 정리합니다.

형식별 비교

형식확장자압축률속도용도
gzip.tar.gz / .tgz보통빠름리눅스 일반 배포
bzip2.tar.bz2높음느림소스 패키지
xz.tar.xz매우 높음매우 느림커널, 배포판 패키지
zip.zip보통빠름크로스플랫폼
7-zip.7z매우 높음느림최대 압축
zstd.tar.zst높음매우 빠름최신 배포판, Docker

tar — 묶기와 압축

Bash
# 압축 (gzip)
tar czf archive.tar.gz /path/to/dir

# 압축 (bzip2)
tar cjf archive.tar.bz2 /path/to/dir

# 압축 (xz)
tar cJf archive.tar.xz /path/to/dir

# 압축 (zstd)
tar --zstd -cf archive.tar.zst /path/to/dir

# 진행상황 표시
tar czf archive.tar.gz -v /path/to/dir

# 파일 제외
tar czf archive.tar.gz --exclude='*.log' --exclude='.git' /path/to/dir

# 특정 파일만 포함
tar czf archive.tar.gz file1.txt file2.txt dir/

tar — 해제

Bash
# 해제 (형식 자동 감지)
tar xf archive.tar.gz

# 특정 디렉터리에 해제
tar xzf archive.tar.gz -C /target/dir

# 내용 목록 확인 (해제하지 않음)
tar tzf archive.tar.gz

# 특정 파일만 해제
tar xzf archive.tar.gz path/to/specific/file

tar 옵션 요약

옵션의미
c생성
x해제
t목록 보기
zgzip
jbzip2
Jxz
f파일명 지정
v진행상황 출력
C대상 디렉터리

gzip / gunzip

Bash
# 단일 파일 압축 (원본 삭제됨)
gzip file.txt            # → file.txt.gz

# 원본 유지
gzip -k file.txt

# 해제
gunzip file.txt.gz
gzip -d file.txt.gz

# 압축 레벨 (1=빠름, 9=최대 압축)
gzip -9 file.txt

# 여러 파일
gzip *.log

zip / unzip

Bash
# 압축
zip archive.zip file1 file2 dir/

# 디렉터리 재귀 압축
zip -r archive.zip /path/to/dir

# 특정 파일 제외
zip -r archive.zip . -x "*.log" -x ".git/*"

# 암호 설정
zip -e archive.zip files/

# 해제
unzip archive.zip

# 특정 디렉터리에 해제
unzip archive.zip -d /target/dir

# 내용 확인
unzip -l archive.zip

7z

Bash
sudo apt install -y p7zip-full

# 압축
7z a archive.7z /path/to/dir

# 최대 압축
7z a -mx=9 archive.7z /path/to/dir

# 암호 설정
7z a -p archive.7z files/

# 해제
7z x archive.7z -o/target/dir

# 내용 확인
7z l archive.7z

zstd / tar.zst — 고속 고압축 (요즘 표준)

Zstandard(zstd)는 gzip보다 빠르면서 압축률은 더 높아, 최신 배포판·패키지(.pkg.tar.zst)와 백업에서 사실상 표준이 됐다. 확장자는 .zst, tar와 함께 쓰면 .tar.zst다.

Bash
sudo apt install -y zstd        # Debian/Ubuntu
sudo dnf install -y zstd        # RHEL/Fedora

# tar.zst 압축 풀기 (해제, tar 1.31+)
tar --zstd -xf archive.tar.zst

# 특정 폴더로 해제
tar --zstd -xf archive.tar.zst -C /target/dir

# tar.zst 생성
tar --zstd -cf archive.tar.zst /path/to/dir

# 단일 파일 압축 / 해제
zstd file.log            # → file.log.zst
zstd -d file.log.zst     # 해제 (= unzstd)

# 최대 압축(-19) + 멀티스레드(-T0)
tar -cf backup.tar.zst -I 'zstd -19 -T0' /data

tar: unrecognized option '--zstd'가 뜰 때 (tar 1.30 이하, 예: CentOS 7) — zstd로 먼저 풀어 파이프로 넘긴다.

Bash
zstd -dc archive.tar.zst | tar -xf -

실무 패턴

Bash
# 로그 디렉터리 일별 백업
tar czf /backup/logs-$(date +%Y%m%d).tar.gz /var/log/myapp/

# 압축 파일 크기 확인
ls -lh archive.tar.gz

# 원격 서버로 스트리밍 압축 전송
tar czf - /data | ssh user@remote "cat > /backup/data.tar.gz"

# 분할 압축 (4GB 단위)
tar czf - /large-data | split -b 4G - backup.tar.gz.part
#tar#gzip#zip#압축#7z#linux
편집 안내 · Editorial Note

이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.

관련 공식 문서GNU/Linux man 페이지

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.