제임스딘딘의
Tech & Life

개발자의 기록 노트/Linux

리눅스 압축 tar gzip bzip2 zip 해제/압축 방법

제임스-딘딘 2011. 11. 27. 15:57

리눅스 압축 명령/방법/종류


리눅스에서 많이 사용되는 압축파일로는 tar, gz, bz2, zip 등이 있다. 




이들 각각은 나름대로의 고유한 압축방식을 가지고 있으며, 압축해제하는 방법 또한 다양하다.

그래픽 유저 인터페이스(GUI) 모드에서 리눅스를 사용하는 사람이라면 간단히 더블클릭으로 압축 관리 프로그램을 실행하여 압축 및 해제를 할 수 있지만, 텍스트 모드를 사용하는 상황이라면 이들 압축파일을 사용할 수 있는 명령들을 숙지하고 있을 필요가 있다.


오늘은 이러한 압축 파일들을 생성하고 압축해제하는 방법에 대해 알아보도록 하자.



.tar 파일

tar은 엄밀히 말해서 압축방식은 아니고, 일종의 묶음 파일로 이해하자.

이 tar과 gzip을 같이 사용하는 경우 tar.gz (또는 tgz)라는 확장자를 사용하게 된다.

tar 로 묶고 푸는 방법은 다음과 같다.

 


압축 생성

  # tar cvf temp.tar temp/

    ; temp 디렉터리를 temp.tar 이라는 파일로 묶는다.

     (temp 디렉터리와 그 이하의 모든 파일 및 디렉터리)

 

압축 해제

  # tar xvf temp.tar

 

옵션설명

  -c : (create) 압축 파일을 생성한다.

  -x : (extract) 압축 파일을 해제한다.

  -v : 압축파일이 생성(해제)되는 과정을 보여준다.

  -f : 압축파일 또는 Archive 장치를 사용한다.


참고사항

※ tar 명령에서 옵션 앞에 붙는 "-" 기호는 붙여도 되고, 붙이지 않아도 된다.

※ gzip과 같이 압축된 파일의 경우 (tar.gz 또는 tgz) -z 옵션을 사용하여 한번에 처리할 수 있다.

 


gzip (tar.gz 또는 tgz)

 앞서 보았던 tar로 묶여진 파일을 다시 압축하는 방법으로 많이 사용되는 압축형태이다. 

gzip 명령으로 압축하고 gunzip 명령으로 압축을 해제한다.

 

압축 생성

  # gzip temp.tar

  위 명령을 사용하면 temp.tar.gz 이라는 파일이 생성된다.

 

압축 해제

  # gunzip temp.tar.gz

  # gzip -d temp.tar.gz


참고사항 

※ gzip 명령으로 압축을 해제하면, 그 전단계인 tar 묶음 형태로 압축이 풀리게 되므로 tar 명령으로 다시한번 묶음을 해제해야 한다.

최근에는 이러한 번거로운 과정을 줄이기 위해 tar 명령에서 tar 묶음 및 gzip 압축까지 모두 해제할 수 있는 옵션인 '-z' 옵션이 제공된다.


아래와 같이 응용할 수 있다.


  # tar xzvf temp.tar.gz

  

 

bzip2 (bz2)

gzip과 같이 최근 많이 사용되는 압축 형태로 tar.bz2 라는 확장자로 다루어진다.

역시 tar 묶음에 다시 압축을 가하는 형태이며, bzip2 전용 명령도 있으며, tar에서도 한번에 사용할 수 있는 옵션(-j)이 있다.

 

압축 생성

  # bzip2 -zkv temp.tar

 

압축 해제

  # bunzip2 temp.tar.bz2


참고사항 

※ bzip2 명령으로 압축을 해제하면, tar 명령을 다시 사용해야 하므로, 최근에는 tar에서 바로 해제하는 경우가 많다.

  # tar xjvf temp.tar.bz2



zip

zip 파일은 Windows에서도 많이 사용되는 압축 형태로, 리눅스에서도 동일하게 사용할 수 있다.

 

압축 생성

  # zip -v temp.zip temp/*

    ; temp 디렉터리 이하의 모든 파일을 zip으로 압축한다.

 

압축 해제

  # unzip temp.zip



알아두면 도움되는 Tip

리눅스에서는 Windows와 달리, 파일의 확장자에 큰 의미를 두지 않으므로, 압축파일 생성시 이름 및 확장자를 임의로 지정할 수도 있다.

그러나 사용자 간의 커뮤니케이션 및 인식의 통일을 위해 가급적 지정된 확장자를 사용하는 것이 좋다.

즉 압축파일 생성시 아래와 같은 일련의 규칙들을 준수해 줌으로써 쉽게 인식하고 혼란을 막아, 다른 사용자의 이해를 높일 수 있다.


쉽게말하면, zip으로 압축하고 확장자를 'tar' 이런식으로 바꿔서 다른사람한테 전달하면, 

그 다른사람은 tar로 풀려고 시도를 하는 등의 삽질을 하게 된다는 말.

 

그러니깐, 아래와 같은 압축파일 확장자 규칙을 따르면 좋을 것 같다.


tar압축 : *.tar

tar/gzip 압축 : *.tar.gz / *.tgz

tar/bzip2 압축 : *.tar.bz2