리눅스 tar 명령어 완벽 가이드 - 아카이브 원리부터 압축·해제 실무 예제까지

개요

리눅스 환경에서 대용량 파일과 디렉터리를 묶고 압축할 때 가장 널리 쓰이는 tar 명령어의 동작 원리를 알아봅니다. 아카이브와 압축의 본질적인 차이를 이해하고, 실제 터미널 실습을 통해 필수 옵션 활용법을 익힐 수 있습니다.

tar의 기본 개념: 단순 묶기(Archive)와 압축(Compression)의 차이

tar 아카이브 실습을 진행하기 위해 실습 디렉터리와 예제 텍스트 파일을 생성합니다.

mkdir -p ~/tar-demo/sample && echo ‘Hello Linux 1’ > ~/tar-demo/sample/file1.txt && echo ‘Hello Linux 2’ > ~/tar-demo/sample/file2.txt

tar 명령어는 여러 파일과 디렉터리를 하나의 아카이브 파일로 묶거나 해제할 때 사용합니다.
-c, -v, -f 옵션과 -C 옵션을 조합하여 sample 디렉터리를 archive.tar 파일로 묶어 생성합니다.
⚙️ [주요 옵션]

-c : 새로운 아카이브 파일을 생성합니다.
-x : 아카이브 파일의 내용물을 압축 해제하거나 추출합니다.
-t : 아카이브 내부에 포함된 파일 목록을 확인합니다.
-v : 아카이브 생성 또는 해제 과정을 화면에 상세히 출력합니다.
-f : 작업할 아카이브 파일명을 지정합니다.
-z : gzip 알고리즘을 사용하여 압축하거나 해제합니다(.tar.gz).
-j : bzip2 알고리즘을 사용하여 압축하거나 해제합니다(.tar.bz2).
-J : xz 알고리즘을 사용하여 압축하거나 해제합니다(.tar.xz).
-C : 아카이브 작업을 수행할 대상 디렉터리 경로를 지정합니다.

tar -cvf ~/tar-demo/archive.tar -C ~/tar-demo sample

ls -lh 명령어로 생성된 archive.tar 파일과 원본 디렉터리의 상세 정보를 확인합니다.
단순히 파일을 하나로 묶은 아카이브이므로 용량 감소를 위한 압축 과정은 거치지 않은 상태입니다.

ls -lh ~/tar-demo

실무 압축 옵션: gzip(-z)과 bzip2(-j) 결합 활용

gzip 압축 옵션인 -z를 추가하여 sample 디렉터리를 아카이브 생성과 동시에 압축한 .tar.gz 파일을 생성합니다.
빠른 압축 속도와 준수한 압축률을 제공하여 실무에서 가장 널리 쓰이는 방식입니다.

tar -czvf ~/tar-demo/archive.tar.gz -C ~/tar-demo sample

bzip2 압축 옵션인 -j를 지정하여 sample 디렉터리를 묶음과 동시에 압축한 .tar.bz2 아카이브를 생성합니다.
gzip 대비 압축 처리에 시간이 더 소요되지만 일반적으로 더 높은 압축률을 보여줍니다.

tar -cjvf ~/tar-demo/archive.tar.bz2 -C ~/tar-demo sample

생성된 아카이브 파일들의 목록과 용량을 확인하기 위해 ls -lh ~/tar-demo/*.tar* 명령어를 실행합니다.
압축을 거치지 않은 일반 아카이브(archive.tar)와 비교하여 압축 알고리즘이 적용된 파일들의 크기 차이를 확인할 수 있습니다.

ls -lh ~/tar-demo/.tar

아카이브 내부 파일 목록 미리보기(-t)와 안전 검증

압축 해제 전 아카이브 내부 파일 구성과 디렉터리 경로를 미리 확인하기 위해 tar -tvf ~/tar-demo/archive.tar.gz 명령어를 실행합니다.
-t 옵션에 상세 정보 출력 옵션인 -v를 함께 지정하면 실제 압축을 풀지 않고도 포함된 파일들의 권한, 소유자, 크기 및 디렉터리 구조를 안전하게 미리 검증할 수 있습니다.

tar -tvf ~/tar-demo/archive.tar.gz

원하는 경로에 안전하게 압축 해제하기(-x와 -C)

압축을 안전하게 해제할 전용 디렉터리를 생성하기 위해 mkdir -p ~/tar-demo/extracted 명령어를 실행합니다.

mkdir -p ~/tar-demo/extracted

-x와 -C 옵션을 사용하여 현재 작업 디렉터리를 오염시키지 않고 지정한 대상 경로에 아카이브 파일의 압축을 해제합니다.
-z 옵션으로 gzip 압축을 해제하고 -v 옵션으로 해제되는 파일 목록을 실시간으로 확인합니다.

tar -xzvf ~/tar-demo/archive.tar.gz -C ~/tar-demo/extracted

지정한 경로에 아카이브 내부 파일들이 정상적으로 풀렸는지 확인하기 위해 ls -la ~/tar-demo/extracted/sample 명령어를 실행합니다.
출력 결과를 통해 파일의 소유권과 권한이 아카이브 생성 당시의 상태 그대로 온전하게 복원되었음을 확인할 수 있습니다.

ls -la ~/tar-demo/extracted/sample

지금까지 리눅스 tar 명령어의 기본 동작 원리부터 실무에서 자주 쓰이는 압축 및 해제 예제까지 간단하게 정리해보았습니다.
상황에 맞는 핵심 옵션들을 잘 활용하여 리눅스 환경에서의 파일 관리와 백업 작업을 더욱 수월하게 진행해보시기 바랍니다.