[리눅스 명령어] linux tar 명령어 – 압축 및 해제

2025. 5. 28. 10:40·linux
728x90
반응형

tar는 리눅스에서 가장 널리 쓰이는 파일 아카이브 도구다.
이 명령어 하나만 알면, 여러 개의 파일을 하나로 묶고(tape), 압축하고(compress),
다시 풀고(extract) 하는 작업을 한 줄로 해결할 수 있다.

처음엔 옵션이 헷갈리지만, 개념을 두 가지로 분리하면 쉽게 이해할 수 있다:
🔸 테이핑(taping): 파일을 하나로 묶기
🔸 압축(compression): 용량 줄이기


테이핑(taping) – 여러 파일을 하나로 묶기 (.tar)

tar의 본래 기능은 "Tape Archive", 즉 여러 파일을 하나로 테이프처럼 이어붙이는 것이다.
압축 없이 단순히 하나의 .tar 파일로 묶는다.

기본 사용법

tar -cf archive.tar file1 file2 dir1
옵션 의미 (풀네임)
-c create – 새 아카이브 생성
-f file – 아카이브 파일 이름 지정

file1, file2, dir1은 묶을 대상들

테이핑 예제

# 현재 디렉토리의 모든 파일 묶기
tar -cf backup.tar *

# 특정 디렉토리 묶기
tar -cf project.tar ./src ./doc

묶인 파일은 .tar 확장자를 가지며 아직 압축되지 않은 상태다.

*중요* 거의 모든 tar 명령어에서 반드시 -f는 포함해야 한다.
그렇지 않으면 tar는 stdout으로 덤프를 출력하려고 하기 때문에 화면에 깨진 바이너리가 찍힌다.


압축(compression) – 용량을 줄이기 (.tar.gz, .tar.bz2, .tar.xz 등)

.tar로 묶은 파일을 다시 gzip이나 bzip2, xz 등의 알고리즘으로 압축하면
.tar.gz, .tar.bz2, .tar.xz 같은 확장자가 된다.

gzip 압축 (.tar.gz)

tar -zcvf archive.tar.gz target/
옵션 의미 (풀네임)
-z gzip – gzip 압축 사용
-c create – 생성
-v verbose - 상세 출력
-f file – 파일 이름 지정

🔸 속도 빠름, 압축률은 보통
🔸 가장 보편적으로 사용됨
🔸 .tar.gz 확장자로 생성

bzip2 압축 (.tar.bz2)

tar -jcvf archive.tar.bz2 target/
옵션 의미
-j bzip2 압축 사용

🔸 압축률은 높음, 속도는 느림
🔸 텍스트 파일에 유리함
🔸 .tar.bz2 확장자

xz 압축 (.tar.xz)

tar -Jcvf archive.tar.xz target/
옵션 의미
-J xz 압축 사용

🔸 가장 높은 압축률, 가장 느림
🔸 저장 공간이 중요한 환경에 적합
🔸 .tar.xz 확장자


압축 풀기 (extract)

.tar만 풀기

tar -xf archive.tar
옵션 의미
-x extract – 압축 풀기
-f 파일 지정

각 옵션에 따라 압축풀기

# gz 압축풀기
tar -zxvf archive.tar.gz

# bzip2 압축풀기
tar -jxvf archive.tar.bz2

# xz 압축풀기
tar -Jxvf archive.tar.xz

옵션을 더 쉽게 기억하는 팁

압축

tar -zcvf archive.tar.gz

압축옵션 (z,j,J) + 압축 c + 공통 vf

해제

tar -zxvf archive.tar.gz

압축옵션 (z,j,J) + 해제 x + 공통 vf


마무리

tar는 묶고 + 압축하고 + 푸는 기능이 하나로 통합된 명령어다.
-c, -x, -f, -z, -j, -J만 익혀두면 대부분의 작업은 해결된다.
.zip보다 유연하고, 특히 백업 스크립트나 리눅스 배포 환경에서 표준처럼 사용된다.

728x90
반응형

'linux' 카테고리의 다른 글

[리눅스 디스크 관리] linux disk 파티션, mount  (1) 2025.05.28
[리눅스 프로세스 관리] ps와 kill 명령어 + 시그널까지 한 번에 정리하기  (0) 2025.05.28
[리눅스 권한 명령어 정리] chmod, chown, umask  (0) 2025.05.27
[리눅스 유저 & 그룹 관리] useradd, usermod, passwd, groupadd  (0) 2025.05.26
[리눅스 기본기] redirect, pipe, grep – 셋만 알아도 터미널이 쉬워진다  (0) 2025.05.23
'linux' 카테고리의 다른 글
  • [리눅스 디스크 관리] linux disk 파티션, mount
  • [리눅스 프로세스 관리] ps와 kill 명령어 + 시그널까지 한 번에 정리하기
  • [리눅스 권한 명령어 정리] chmod, chown, umask
  • [리눅스 유저 & 그룹 관리] useradd, usermod, passwd, groupadd
highgarden
highgarden
커밋 하나하나가 쌓여 커다란 정원이 되는 중입니다. 하루하루 정성껏 심어가는 중 https://github.com/highgarden7
  • highgarden
    커밋심는 정원
    highgarden
  • 전체
    오늘
    어제
    • 분류 전체보기 (37)
      • ai (1)
      • devops (2)
      • Nest.js (14)
      • linux (14)
      • 네트워크 (6)
      • git (0)
      • aws (0)
      • docker (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Chat GPT
    E2E
    githib action
    Java
    Linux
    vercel
    nestjs
    springboot
    IP
    네트워크
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
highgarden
[리눅스 명령어] linux tar 명령어 – 압축 및 해제
상단으로

티스토리툴바