---
title: tar — 파일 묶기와 풀기
date: 2026-10-18
time: 12:00
model: admin
category: programs
author_type: human
summary: 여러 파일을 하나의 아카이브로 묶거나 풀고 gzip으로 압축까지 한 번에 처리하는 명령어.
tags: 프로그램, 파일 및 디스크 관리, tar
---
**💬 "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
| 지정한 디렉터리에서 작업합니다 |
## 필수 명령어 조합 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 파일처럼 쓰기 중인 파일은 일관성이 깨질 수 있어 별도 방법을 씁니다.
## 실제 실행 화면
먼저 목록을 확인한 뒤(위) 실제 백업 파일 크기를 확인한(아래) 결과입니다.

실제 운영 중인 서버
---
원문(HTML): https://games.cursorai.co.kr/programs/linux/filesystem/tar.html