tar — 파일 묶기와 풀기
Linux / 파일 및 디스크 관리 / tar.html
💬 "tar 명령어"
tar는 여러 파일을 하나의 파일로 묶는 도구이고, -z를 붙이면 gzip 압축까지 함께 합니다. 리눅스 백업·배포의 표준입니다.
옵션 순서는 tar -czvf처럼 붙여 쓰는 경우가 많고, 풀 때는 -x로 바꿉니다.
- 개념: c는 묶기(create), x는 풀기(extract), t는 목록(list)입니다. 이 세 글자가 핵심입니다.
- 왼쪽 글자: 동작:
c(만들기) /x(풀기) /t(목록 확인) - 오른쪽 글자: 옵션:
z(gzip),v(진행 출력),f(파일 이름 지정, 보통 맨 뒤) - 경로: 풀 때는
-C로 대상 디렉터리를 지정하면 안전합니다. - 결과물: 확장자는 관례적으로 .tar.gz 또는 .tgz를 씁니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
-c | 새 아카이브를 만듭니다 |
-x | 아카이브를 풉니다 |
-t | 풀지 않고 내용 목록만 봅니다 |
-z | gzip으로 압축하거나 해제합니다 |
-C <dir> | 지정한 디렉터리에서 작업합니다 |
필수 명령어 조합 3가지
tar -czvf backup.tgz /var/www/html— 웹 루트를 통째로 압축 백업tar -tzvf backup.tgz | head— 풀기 전에 내용과 경로를 먼저 확인tar -xzvf release.tgz -C /opt/app— 지정한 디렉터리에 안전하게 풀기
💬 "야간 배치와 겹치지 않게 쓰는 팁 알려줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 무엇을 담을지 정하고 묶기
백업 대상을 정한 뒤 한 파일로 묶습니다.
tar -czvf /backup/www-20261018.tgz /var/www/html
2단계 · 풀기 전에 목록 확인
엉뚱한 경로에 풀리는 사고를 막기 위해 내용을 먼저 봅니다.
tar -tzvf /backup/www-20261018.tgz | head -20
3단계 · 대상 디렉터리에 풀기
운영 중인 디렉터리에 바로 덮어쓰지 말고 별도 경로에 풀어 확인합니다.
tar -xzvf /backup/www-20261018.tgz -C /tmp/restore
실무에서는 이렇게 씁니다
1. 릴리스 파일 배포
상황 — 빌드 산출물이 담긴 release.tgz를 운영 서버 /opt/app 에 풀어야 합니다.
tar -xzvf /tmp/release.tgz -C /opt/app
결과 — 압축을 푸는 파일 목록이 stderr로 출력되며 /opt/app 아래에 배치됩니다.
포인트 — 운영 디렉터리는 -C로 명시하고, 가능하면 이전 버전을 .bak으로 옮긴 뒤 푸는 것이 안전합니다.
2. 설정만 부분 백업
상황 — nginx/php 설정만 따로 백업해 두고 싶습니다.
tar -czvf /backup/conf-20261018.tgz /etc/nginx /etc/php
결과 — 설정 파일들이 하나의 tgz로 묶여 보관됩니다. 절대 경로가 그대로 담기므로 복구 시 위치가 유지됩니다.
포인트 — 절대 경로로 묶으면 복구가 단순해집니다. 상대 경로 묶기는 풀 때 기준 경로를 꼭 확인합니다.
주의할 점
- 풀 때 tar 폭탄(압축 해제 시 경로 탈출) 위험이 있습니다. 신뢰할 수 없는 파일은 -t로 목록을 먼저 확인합니다.
- -C 없이 절대 경로로 묶은 파일은 어디서 풀어도 원래 위치에 덮어씁니다.
- 운영 중인 디렉터리에 바로 풀지 말고 임시 경로에서 검증합니다.
- SQLite/DB 파일처럼 쓰기 중인 파일은 일관성이 깨질 수 있어 별도 방법을 씁니다.
실제 실행 화면
먼저 목록을 확인한 뒤(위) 실제 백업 파일 크기를 확인한(아래) 결과입니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.