[Linux] tar, tar.gz 파일 압축 및 해제 하기 (on CentOS)

본 포스트에서는 Linux(CentOS)에서 tar, tar.gz 파일로 압축 및 해제하는 방법을 소개합니다.


[출처] 해시넷

INTRO

리눅스(Linux)를 사용하다보면 파일을 백업하거나 옮기는 작업을 자주 수행하게 됩니다. 용량이 작거나 파일 수가 적은 경우에는 그대로 작업해도 문제가 없지만 일반적으로는 작업 효율을 위해 대상 파일 또는 폴더를 압축하여 백업 및 전달합니다.

리눅스에서 압축 명령어는 tar이며 자주 사용하는 명령어 및 옵션 몇가지를 아래 정리해보았습니다.

tar 명령어에 대한 자세한 내용은 IT나무위키 - 리눅스 tar 에서 확인 가능합니다.

1. 파일 압축하기

1.1 tar로 압축하기

  • 명령어 사용법 : tar -cvf "파일명.tar" "대상 파일 또는 폴더"
  • 사용 예시 : 현재 디렉토리에 있는 test 폴더를 test.tar로 압축
tar -cvf test.tar test

1.2 tar.gz로 압축하기

  • 명령어 사용법 : tar -zcvf "파일명.tar" "대상 파일 또는 폴더"
  • 사용 예시 : 현재 디렉토리에 있는 test 폴더를 test.tar.gz로 압축
tar -zcvf test.tar.gz test

[참고] tar, gzip(tar.gz) 비교

tar 방식

  • 리눅스 환경에서 자주 사용하는 방식
  • 압축 파일이라고는 하지만 용량을 압축하지는 않음 (파일을 하나로 합치는 방식)
  • 매우 빠르게 압축이 진행되고 CPU 사용률도 높지 않음 (용량을 줄이지 않음)

gzip(tar.gz) 방식

  • 리눅스에서 용량을 줄여서 압축할 때 사용하는 방식
  • tar를 다시 압축한다는 의미로 이해하면 됨

2. 파일 압축풀기

2.1 tar로 압축풀기

  • 명령어 사용법 : tar -xvf "파일명.tar"
  • 사용 예시1 : test.tar 파일을 현재 디렉토리에 압축 해제
tar -xvf test.tar

  • 사용 예시2 : test.tar 파일을 경로를 지정하여 압축 해제(특정 폴더(test2)에 압축해제)
    • 디렉토리는 자동 생성되지 않으므로 사전에 mkdir 명령어로 폴더 생성 필요
tar -xvf test.tar -C test2

2.2 tar.gz로 압축풀기

  • 명령어 사용법 : tar -zxvf "파일명.tar"
    • 사용 예시 : test.tar.gz 파일을 압축 해제하는 예시
tar -zxvf test.tar.gz 

3. tar 옵션 정리

  • -A, --catenate : 아카이브에 tar 파일을 추가한다.
  • -c, --create : 새로운 아카이브 파일을 만든다.
  • -C, --directory DIR : 대상 디렉터리(DIR)를 지정한다.
  • -d, --diff, --compare : 아카이브와 파일 시스템의 차이를 비교한다.
  • -f, --file=ARCHIVE : 아카이브 이름(ARCHIVE)을 지정한다.
  • -j -I --bzip : bzip2를 이용해 압축한다.
  • -M, --multi-volume : 멀티 볼륨 아카이브를 생성, 해제, 출력한다.
  • -r, --append : 아카이브의 끝에 파일을 추가한다.
  • -t, --list : 아카이브 목록을 출력한다.
  • -u, --update : 아카이브의 목록 중 기존의 파일에서 업데이트된 파일만 추가한다.
  • -v, --verbose : 상세한 정보를 출력한다.
  • -w, --interactive : 모든 행동에 사용자의 확인을 요구한다.
  • -x, --extract, --get : 아카이브에서 파일을 푼다.
  • -z --gzip, --ungzip : gzip으로 압축한다. ungzip으로 압축을 해제한다.
  • --help : 도움말을 출력한다.
  • --version : 버전 정보를 출력한다.

마무리

이번 포스트에서는 리눅스에 자주 사용하는 압축 명령어(tar)에 대해 설명하였습니다. 자주 사용하는 명령어지만 가끔 기억이 나지 않는 경우가 많기에 북마크해 두고 필요하실 때 찾아 사용하시면 좋을 것 같습니다.

관련 링크

[1] IT나무위키 - 리눅스 tar
[2] 리눅스 - tar, gzip(tar.gz) 차이점은?