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 같은 경우엔 아주 자주 사용 하니까 꼭 알아 두시면 좋을 것 같습니다. 특히 서버 관리, 백업, 로그 보관 등 많이 사용합니다.
'정보보안 > 리눅스' 카테고리의 다른 글
[리눅스] 프로세스 관리 (ps, top, kill) (1) | 2024.12.04 |
---|---|
[리눅스] 로그 관리 (var/log, journalctl 등) (0) | 2024.11.27 |
리눅스 파일 권한과 관리 (ls, chown, chmod, chgrp) (0) | 2024.11.24 |
[리눅스] scp 명령어 사용법 (ssh 파일 전송프로토콜) (0) | 2024.11.19 |
[리눅스] 파일 및 디렉토리 무결성 검사 MD5sum (0) | 2024.11.05 |