Linux / 명령어 / tar - 여러 파일을 묶고 압축 아카이브 풀기
tar는 여러 파일과 디렉터리를 하나의 아카이브로 묶거나 풀어 줍니다. .tar 자체는 압축 형식이 아니며, gzip·bzip2·xz와 결합해 압축 아카이브를 만들 수 있습니다.
tar 명령어란?
아카이브는 파일의 이름과 디렉터리 구조를 포함하는 묶음입니다. GNU tar에서 -c는 생성, -t는 목록 확인, -x는 추출이고 -f 뒤에는 아카이브 파일명을 둡니다. -z는 gzip, -j는 bzip2, -J는 xz 압축과 연결합니다. 추출 전 목록과 목적지를 확인하면 예상치 못한 경로에 파일이 풀리는 일을 줄일 수 있습니다.
기본 문법
tar [동작] [옵션] -f 아카이브 [파일 또는 디렉터리 ...]
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man tar으로 현재 시스템의 설명을 확인하세요.
사용 예제
gzip 압축 아카이브 만들기
project/의 내용을 디렉터리 구조와 함께 묶습니다. 기존 project.tar.gz가 있으면 덮어쓸 수 있습니다.
tar -czf project.tar.gz project/
풀기 전에 목록 확인
압축을 풀 위치와 파일명을 판단하기 위해 먼저 구성원을 나열합니다.
tar -tzf project.tar.gz
지정한 디렉터리에 풀기
restore/를 먼저 만든 뒤 그 안에 풉니다. 기존 파일과 겹치지 않는지 확인하세요.
mkdir -p restore tar -xzf project.tar.gz -C restore/
아카이브 내부 목록 확인하기
tar는 여러 파일을 하나의 아카이브로 묶습니다. 다음 예제는 작은 파일을 만든 뒤 묶고, 압축 해제 없이 구성원을 조회합니다.
printf 'hello\n' > note.txt tar -cf bundle.tar note.txt tar -tf bundle.tar
예시 출력:
note.txt
-c는 생성, -t는 목록, -f는 아카이브 파일 지정입니다. .tar 자체는 압축을 뜻하지 않으며 -z·-J 등으로 별도 압축을 결합할 수 있습니다. 신뢰할 수 없는 아카이브를 풀기 전에는 내부 경로에 절대 경로나 상위 디렉터리 이동이 있는지 확인하고 별도 작업 디렉터리에 추출하세요.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-c / -t / -x |
생성·목록·추출 동작 중 하나를 선택합니다. |
-f 파일 |
읽거나 쓸 아카이브 파일을 지정합니다. |
-z / -j / -J |
gzip·bzip2·xz 압축을 각각 사용합니다. |
-C 디렉터리 |
작업 기준 디렉터리를 변경합니다. |
-v |
처리하는 파일명을 표시합니다. |
사용할 때 주의할 점
신뢰할 수 없는 아카이브를 관리자 권한으로 바로 풀지 마세요. 추출 대상의 파일명, 심볼릭 링크와 기존 파일 덮어쓰기 가능성을 먼저 살피고 격리된 빈 디렉터리를 사용하세요. tar -cf로 기존 아카이브를 다시 만들면 내용을 추가하는 것이 아니라 아카이브를 새로 쓰므로 기존 내용이 사라질 수 있습니다.
자주 묻는 질문
tar와 gzip의 차이는 무엇인가요?
tar는 여러 파일과 경로를 한 묶음으로 만들고, gzip은 데이터 스트림을 압축합니다. tar -czf는 두 기능을 결합한 명령입니다.
공식 문서
옵션의 정확한 동작과 구현별 차이는 tar 관련 공식 문서에서 확인할 수 있습니다.









