숏컷 코드
bash
# 디렉터리를 tar.gz로 묶기
tar -czf app-logs.tar.gz logs/
# 압축 해제
tar -xzf app-logs.tar.gz
# 목록만 확인
tar -tzf app-logs.tar.gz
# 대상 디렉터리에 풀기
mkdir -p restore
tar -xzf app-logs.tar.gz -C restore| 옵션 | 의미 |
|---|---|
-c | archive 생성 |
-x | archive 추출 |
-t | 목록 확인 |
-z | gzip 압축/해제 |
-f | 파일 이름 지정 |
-C | 추출 위치 변경 |
압축 흐름
tar는 여러 파일을 하나의 archive로 묶고, gzip은 그 archive를 압축합니다. 그래서 .tar는 묶음이고, .tar.gz 또는 .tgz는 묶은 뒤 gzip으로 압축한 파일입니다. 디렉터리 전체를 백업하거나 서버 간 전달할 때 가장 흔한 형태입니다.
bash
tar -czf backup.tar.gz app/
tar -tzf backup.tar.gz해제하기 전에는 tar -tzf로 archive 안의 최상위 경로를 확인하는 편이 안전합니다. archive가 현재 디렉터리에 바로 많은 파일을 풀도록 만들어졌는지, app/ 같은 상위 디렉터리 아래에 정리되어 있는지 먼저 확인할 수 있습니다.
-C는 추출 위치를 명확히 한다
현재 디렉터리에 바로 풀면 기존 파일과 섞일 수 있습니다. 복구나 검증 목적이라면 빈 디렉터리를 만들고 -C로 그 위치에 푸는 흐름이 안전합니다.
bash
mkdir -p /tmp/restore-check
tar -xzf backup.tar.gz -C /tmp/restore-check
ls -la /tmp/restore-check체크포인트
| 상황 | 명령 |
|---|---|
| 디렉터리 압축 | tar -czf name.tar.gz dir/ |
| 압축 해제 | tar -xzf name.tar.gz |
| 목록 확인 | tar -tzf name.tar.gz |
| 다른 위치에 풀기 | tar -xzf name.tar.gz -C target/ |
| 압축 없이 묶기 | tar -cf name.tar dir/ |
| gzip만 해제 | gunzip file.gz |
주의할 점
archive를 해제하기 전에는 목록을 먼저 확인하십시오. 현재 디렉터리에 바로 많은 파일이 풀리거나, 기존 파일을 덮어쓰는 상황을 피할 수 있습니다.
bash
tar -tzf backup.tar.gz | head
mkdir -p restore
tar -xzf backup.tar.gz -C restore참고 링크
2 sources