본문 바로가기
Linux/Linux Shell Command

tar - 파일/디렉터리(폴더) 압축

by 드로니뚜벅이 2022. 4. 5.

tar

tar 명령어 자체는 여러 개의 파일을 하나의 파일로 묶는 용도로 사용됩니다. 다만, tar를 통해 하나로 합쳐진 파일을 gzip이나 bzip2를 사용하여 압축할 수 있습니다.

tar가 널리 쓰이게 된 이유 중 한 가지는 단순 아카이브 기능과 더불어 tar로 묶여지기 전 파일들의 속성과 심볼링 링크, 디렉토리 구조 등을 그대로 가져갈 수 있는 특징 때문입니다. 그래서 최근에는 리눅스용 프로그램, 데이터, 소스 및 라이브러리 등을 배표하는 용도로 많이 사용됩니다.

tar 명령을 통해 생성된 파일 확장자는 작업자에 따라 다르게 지정될 수 있습니다. 기본 옵션으로 압축할 경우에는 일반적으로 ".tar" 확장자를 사용합니다.

gzip 으로 압축한 경우에는 ".gz" 혹은 ".tar.gz" 사용하거나 간혹 ".tgz"로 사용하기도 합니다.

bzip2 로 압축된 경우에는 ".bz2" 혹은 ".tar.bz2"를 사용하거나 간혹 ".tb2" 나 "tbz2" 등으로 사용하기도 합니다.

압축된 파일이 어떤 압축 옵션을 사용했는지 확실하지 않을 경우에는 "file" 명령어로 확인하시기 바랍니다.

$ file Sample.tar.gz
zz.tar.gz: gzip compressed data, from Unix, original size modulo 2^32 10240
$

 

tar 명령어에서 사용할 수 있는 주요 옵션은 아래와 같습니다.

옵션 설명
-c 파일 압축
-x 파일 압축 해제
-z gzip 사용하여 압축 혹은 해제 (확장자: *.tar.gz)
-j bzip2를 사용핳여 압축 혹은 해제 (확장자: *.tar.bz2)
-v 진행과정 보여 주기
-p 퍼미션 유지
-f 대상 tar 아카이브 파일 이름을 지정, 기본 옵션
-t
압축된 파일 내용 보기 (압축을 풀기 전에 내용 확인)
-w
압축 진행 과정에 대해 확인 요청
-C 경로를 지정

 

tar를 사용하여 압축하기

앞에서 언급했듯이 tar는 여러개의 파일을 하나로 묶는 기능을 합니다. 즉, 압축율은 0이라고 보시면 됩니다.

압축율이 0인데 굳이 압축을 하느냐고 타박하실 수 있는데요. 압축보다는 여러개의 파일로 복사하는 게 번거롭거나 압축 자체가 의미가 없는 경우 하나의 파일로 묶는 게 더 유용할 때가 종종 있긴 합니다.

tar -cvf [파일명.tar] [폴더명]

사용 예)

$ tar -cvf sample.tar /home/sun/sample

tar 압축해제

tar -xvf [파일명.tar]

사용 예)

$ tar -xvf sample.tar

 

tar.gz

gzip으로 tar 파일을 압축하는 가장 좋은 압축 옵션입니다. 리눅스 환경에서 주로 사용하며 압축시 용량이 크게 줄고 리소스를 많이 소모하지 않습니다. 다만 tar.bz2 방식보다는 압축률이 떨어지는 편이다.

 

tar.gz 압축하기

tar -cvfz [파일명.tar.gz] [폴더명]

사용 예)

tar -cvfz sample.tar /home/sun/sample

압축 시 특정파일을 제외하고 싶은 경우에는 --exclude 옵션을 사용합니다.

예) tar -cvfz --exclude=./*.jpg images.tar.gz ./imges

 

tar.gz 압축풀기

tar -xvfz [파일명.tar.gz]

사용 예)

tar -xvfz sample.tar

 

tar.bz2 압축 풀기

$ tar xvfj [파일명.bz2]

사용 예)

$ tar xvfj ./boost_1_80_0.tar.bz2
$ cd boost_1_80_0
$ ls
boost            boost.css      bootstrap.sh  index.html  libs             README.md  tools
boost-build.jam  boost.png      doc           INSTALL     LICENSE_1_0.txt  rst.css
boostcpp.jam     bootstrap.bat  index.htm     Jamroot     more             status
$

 

 

참고 사이트

https://recipes4dev.tistory.com/146