정보보안/리눅스

[리눅스] tar 명령어 사용법 (아카이브 및 압축 툴)

록스타★ 2025. 1. 15. 14:47
반응형

tar 명령어는 리눅스에서 파일 혹은 디렉토리를 하나의 파일(아카이브)로 묶거나, 혹은 묶인 파일을 해제(풀기)할 때 사용하는 아카이브(archive) 툴입니다. gz, bz2, xz 등 다른 압축 툴과 연동하여 압축/해제를 수행할 수도 있어서, 백업, 배포, 로그 보관 등을 할 때 유용하게 쓰입니다.


1. tar

tar (Tape Archive)
- 예전 테이프 드라이브(tape dirve)에 백업하기 위해 만든 유틸리티에서 유래
- 여러 파일과 폴더를 하나로 묶은 뒤(아카이브) 필요에 따라 gzip, bzip2 등 으로 압축을 추가 적용할 수 있음
- 주로 *.tar, *.tar.gz, *.tar.bz2, *.tar.xz 등의 확장자를 사용하나 그 중 제가 가장 많이 사용하는 건 *.tar.gz


2. 명령어 기본 사용법

tar [옵션] [아카이브 파일명] [대상 파일 혹은 디렉토리명]

대표적인 옵션 :

-c 새롭기 묶기(Create)
-x 풀기(Extract)
-v 묶거나 풀 때 처리과정을 화면에 출력(verbose)
-f 아카이브 파일을 지정한다는 뜻 (주로 -cvf, -xvf 처럼 묶어서 자주 씀)
-t 아카이브 파일 안의 목록만 확인 (list)
-z gzip으로 압축/해제
-j bzip2로 압축/해제
-J xz로 압축/해제


보통은 -cvfz, -xvfz 처럼 묶어서 사용합니다.


3. 파일/디렉토리 묶기 (아카이브)

예시 : tar test.tar /home/test

 


4. 묶으면서 gzip(또는 bzip2, xz) 압축하기

압축률
- gzip < bzip2 < xz 순으로 압축률이 높음
- 반대로 압축/해제 속도는 gzip이 가장 빠르고, xz가 조금 느린 편

예시 : 
- gzip : tar -cvfz gzip.tar.gz [폴더명]
- bzip2 : tar -jcvf bzip2.tar.bz2 [폴더명]
- xz : tar -Jcvf xz.tar.xz [폴더명]


5. 묶인 tar 해제(풀기, Extract)

예시 :
- tar -xvf [파일명.tar]
- gzip : tar -cvfz [파일명.tar.gz]
- bzip2 : tar -cvfj [파일명.tar.bz2]
- xz : tar -cvfJ [파일명.tar.xz]

 


6. tar 파일 내부 확인 (목록만 보기)

예시 :
- tar -tvf [파일명]
- tar -tvfz gzip.tar.gz
- tar -tvfj bzip2.tar.bz2
- tar -tvfJ xz.tar.xz

 


7. 예시 상황별 명령어

1. 특정 디렉토리를 .tar.gz로 만들어서 백업

tar -cvfz backup_20250115.tar.gz /backup

 
2. 압축 풀기 + 현재 디렉토리에 동일 폴더 구조 생성

tar -xvfz backup_20250115.tar.gz

 
3. tar.bz2 파일 내부만 살펴보기

tar -tvfj backup_20250115.tar.bz2

 
4. 디렉토리를 통째로 묶을 때 특정 파일/폴더는 제외
- py 파일들과 node_modules 디렉토리를 제외하고 묶

tar -cvfz data.tar.gz Python --exclude='*.py' --exclude='node_modules'

 
 


tar 명령어를 활용하면 하나의 파일로 묶어서 배포하거나 백업하는 작업이 간편해집니다. bzip나 xz는 자주 사용 안하지만 gzip 같은 경우엔 아주 자주 사용 하니까 꼭 알아 두시면 좋을 것 같습니다. 특히 서버 관리, 백업, 로그 보관 등 많이 사용합니다.

반응형