tar
는 Tape ARchive의 약자입니다.
이름에서 알 수 있듯이, 원래는 테이프 저장 장치에 데이터를 백업하기 위해 만들어진 오래된 명령어에요.
하지만 지금은 테이프보다 파일을 한데 묶는 아카이빙 기능으로 훨씬 더 많이 사용됩니다.
여기서 중요한 포인트! 많은 분들이 tar를 압축 명령어라고 오해하시는데,
엄밀히 말하면 tar는 여러 파일이나 디렉터리를 하나의 파일로 묶어주는 역할만 합니다.
비유하자면, 여러 개의 물건(파일)을 이사 박스(하나의 tar 파일)에 차곡차곡 담는 것과 같아요.
박스에 담기만 한다고 부피가 줄어들진 않죠?
그럼 압축은 어떻게 할까요? tar는 gzip(z)
, bzip2(j)
, xz(J)
같은 다른 압축 도구와 함께 사용되어 묶는 동시에 압축까지 한 번에 처리할 수 있습니다.
🏢 실무에서는 tar를 언제, 어떻게 사용할까요?
tar
는 리눅스/유닉스 환경의 실무에서 정말 다양하게 활용됩니다. 몇 가지 대표적인 시나리오를 살펴볼까요?
백업 및 복원
웹 서버의 소스 코드(www 또는 html 디렉터리), 데이터베이스 덤프 파일, 사용자 홈 디렉터리 등 중요한 데이터를 정기적으로 백업할 때 사용됩니다. 문제가 생겼을 때 이 tar 파일 하나만 있으면 손쉽게 복원할 수 있죠.
로그 파일 관리
하루에도 수백 MB씩 쌓이는 로그 파일들을 매일 또는 매주 tar.gz 형태로 묶어서 보관합니다. 이렇게 하면 디스크 용량을 효율적으로 관리할 수 있고, 나중에 특정 기간의 로그를 분석하기도 편리합니다.
소스 코드 배포
개발이 완료된 애플리케이션 소스 코드를 다른 서버로 옮겨서 배포할 때, 전체 프로젝트 폴더를 tar로 묶어서 전달합니다. 파일 수천 개를 하나씩 옮기는 것보다 훨씬 빠르고 안정적이죠.
대용량 데이터 전송
연구 데이터나 대용량 파일 묶음을 다른 팀원이나 시스템으로 전달해야 할 때, tar로 묶어서 압축하면 하나의 파일로 깔끔하게 보낼 수 있습니다.
🛠️ 이것만 알면 끝! 필수 tar 옵션 & 시나리오별 사용법
이제 가장 중요한 실전 사용법입니다! tar 옵션이 정말 많지만,
실무에서는 몇 가지만 조합해서 사용합니다. 아래 시나리오만 익혀두시면 어떤 상황에서도 막힘없이 tar를 사용하실 수 있을 거예요.
[기본 옵션 5가지]
c (create)
: 새로운 아카이브 파일을 생성합니다. (압축 시작!)x (extract)
: 아카이브 파일에서 파일을 추출합니다. (압축 풀기!)v (verbose)
: 처리되는 과정을 자세하게 보여줍니다. (어떤 파일이 묶이거나 풀리는지 눈으로 확인)f (file)
: 아카이브 파일의 이름을 지정합니다. (거의 항상 마지막에 붙는 옵션)t (list)
: 아카이브 파일의 내용물을 확인합니다. (압축을 풀지 않고 목록만!)
[압축 관련 옵션]
z (gzip)
: gzip으로 압축하거나 해제합니다. 가장 널리 쓰이며 .tar.gz 또는 .tgz 확장자를 사용합니다.j (bzip2)
: bzip2로 압축/해제합니다. gzip보다 압축률이 높지만 시간이 조금 더 걸립니다. .tar.bz2 확장자를 사용합니다.J (xz)
: xz로 압축/해제합니다. 현존하는 압축 방식 중 압축률이 가장 높은 편입니다. .tar.xz 확장자를 사용합니다.
시나리오 1: 여러 파일/디렉터리를 gzip으로 압축하기 📦
my_project
라는 디렉터리와 important.log
파일을 backup.tar.gz
라는 이름으로 압축하고 싶을 때입니다.
# 옵션: z(gzip) + c(생성) + v(과정 표시) + f(파일 이름 지정)
tar -zcvf backup.tar.gz my_project/ important.log
시나리오 2: 압축 파일 풀기 📂
backup.tar.gz
파일의 압축을 현재 디렉터리에 풀고 싶을 때입니다.
# 옵션: z(gzip) + x(풀기) + v(과정 표시) + f(파일 이름 지정)
tar -zxvf backup.tar.gz
시나리오 3: 특정 경로에 압축 풀기 ✨
백업 파일을 /opt/restore
라는 특정 폴더에 풀고 싶을 때가 있습니다. 이때는 -C
(대문자 C) 옵션을 사용합니다.
# -C [경로] 옵션을 맨 뒤에 붙여줍니다.
tar -zxvf backup.tar.gz -C /opt/restore/
시나리오 4: 압축 풀지 않고 내용물만 확인하기 👀
용량이 큰 파일을 무턱대고 풀기 전에, 안에 어떤 파일이 들어있는지 목록만 보고 싶을 때 유용합니다.
# 옵션: z(gzip) + t(목록) + v(과정 표시) + f(파일 이름 지정)
tar -ztvf backup.tar.gz
시나리오 5: 특정 파일/폴더는 제외하고 압축하기
프로젝트 폴더를 압축할 때, 용량만 차지하는 로그 파일(*.log
)이나 불필요한 임시 폴더(tmp/
)는 빼고 싶을 때가 많습니다.
이때 --exclude
옵션은 신의 한 수입니다.
# /var/www/html 디렉터리를 압축하되, .log 파일과 cache 폴더는 제외
tar -zcvf web_backup.tar.gz /var/www/html --exclude='*.log' --exclude='cache'