리눅스에서 많이 사용되는 압축파일로는 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! Tip! Tip!]

리눅스에서는 Windows와 달리, 파일의 확장자에 큰 의미를 두지 않으므로, 압축파일 생성시 이름 및 확장자를 임의로 지정할 수도 있다.
그러나 사용자 간의 커뮤니케이션 및 인식의 통일을 위해 가급적 지정된 확장자를 사용하는 것이 좋다.
즉 압축파일 생성시 아래와 같은 일련의 규칙들을 준수해 줌으로써 쉽게 인식하고 혼란을 막아, 다른 사용자의 이해를 높일 수 있다.

 

[압축파일 확장자 명명 규칙]

- tar압축 : *.tar
- tar/gzip 압축 : *.tar.gz / *.tgz
- tar/bzip2 압축 : *.tar.bz2

'Development > Linux' 카테고리의 다른 글

ctags & cscope 설정  (0) 2008.05.30
SVG + CSS Animations = Fisheye Fun  (0) 2008.05.06
Auto tools tutorial  (0) 2008.04.23
cscope & ctag set  (0) 2008.03.28
eclipse setup  (0) 2008.03.23
Posted by 까 치
,