리눅스를 사용하다 보면 파일이나 디렉토리를 압축하거나 해제해야 하는 경우가 자주 있습니다. 이때 가장 많이 사용되는 명령어가 바로 tar입니다. 오늘은 tar 명령어의 주요 옵션들과 실제 사용 예시를 살펴보겠습니다.

📦 tar 명령어란?

tarTape ARchive의 줄임말로, 여러 파일과 디렉토리를 하나의 아카이브 파일로 묶거나 풀 때 사용하는 명령어입니다. 백업, 파일 전송, 배포 등에 널리 활용됩니다.

🔧 기본 사용법

📁 압축 (아카이브 생성)

tar -cvf file.tar folder
  • file.tar: 생성될 아카이브 파일명
  • folder: 압축할 디렉토리 또는 파일

예시:

tar -cvf backup.tar /home/user/documents

📂 압축풀기 (아카이브 해제)

tar -xvf file.tar

예시:

tar -xvf backup.tar

🗜️ gzip 압축과 함께 사용하기

📁 tar.gz 압축

tar -zcvf file.tar.gz folder

gzip 압축을 함께 사용하면 파일 크기를 더욱 줄일 수 있습니다.

예시:

tar -zcvf website_backup.tar.gz /var/www/html

📂 tar.gz 압축풀기

tar -zxvf file.tar.gz

예시:

tar -zxvf website_backup.tar.gz

📋 주요 옵션 정리

옵션 설명
-c 파일을 tar로 묶음 (create)
-p 파일 권한을 저장
-v 묶거나 파일을 풀 때 과정을 화면으로 출력 (verbose)
-f 파일 이름을 지정 (file)
-C 경로를 지정 (change directory)
-x tar 압축을 풂 (extract)
-z gzip으로 압축하거나 해제함

💡 실용적인 사용 예시

1. 특정 디렉토리에 압축 해제

tar -xvf backup.tar -C /tmp/restore

2. 파일 권한 유지하며 압축

tar -cpvf backup.tar /etc/nginx

3. 여러 파일과 디렉토리 동시 압축

tar -zcvf multiple_backup.tar.gz file1.txt file2.txt /home/user/docs

4. 아카이브 내용 확인 (압축 해제 없이)

tar -tvf backup.tar.gz

5. 특정 파일만 압축 해제

tar -zxvf backup.tar.gz path/to/specific/file.txt

🚀 고급 사용 팁

📊 압축률 비교

# 일반 tar (압축 없음)
tar -cvf backup.tar folder/

# gzip 압축
tar -zcvf backup.tar.gz folder/

# bzip2 압축 (더 높은 압축률)
tar -jcvf backup.tar.bz2 folder/

🔍 압축 과정에서 특정 파일 제외

tar -zcvf backup.tar.gz folder/ --exclude="*.log" --exclude="temp/*"

📅 날짜별 백업 자동화

tar -zcvf backup_$(date +%Y%m%d).tar.gz /important/data

⚠️ 주의사항

  1. 경로 주의: 절대 경로로 압축하면 해제 시 같은 경로에 복원됩니다.
  2. 권한 확인: -p 옵션 없이는 파일 권한이 보존되지 않을 수 있습니다.
  3. 용량 확인: 압축 전에 디스크 공간을 충분히 확보하세요.

🎯 자주 사용하는 명령어 모음

# 기본 압축
tar -cvf archive.tar folder/

# gzip 압축
tar -zcvf archive.tar.gz folder/

# 압축 해제
tar -xvf archive.tar

# gzip 해제  
tar -zxvf archive.tar.gz

# 내용 확인
tar -tvf archive.tar

# 특정 경로에 해제
tar -xvf archive.tar -C /target/path

📚 마무리

tar 명령어는 리눅스 시스템 관리에서 필수적인 도구입니다. 기본적인 압축과 해제부터 고급 옵션까지 익혀두면 파일 관리가 훨씬 효율적이 됩니다.

특히 서버 백업, 배포 자동화, 로그 관리 등에서 tar 명령어의 다양한 옵션들을 활용하면 더욱 강력한 스크립트를 작성할 수 있습니다.


💡 : 자주 사용하는 tar 명령어들은 alias로 등록해두면 더욱 편리합니다!

alias targz='tar -zcvf'
alias untar='tar -zxvf'