TAR명령. TAR압축묶기 압축풀기TAR명령. TAR압축묶기 압축풀기

Posted at 2010. 10. 5. 12:56 | Posted in Server
반응형
TAR
  <TAR>

tar 명령은 파일을 묶는 명령입니다. 원래는 백업을 위해 테이프백업 장치인 DAT  Device 에 백업을 
할 때 쓰는 명령이었지만, 요즘은 파일의 압축이나 묶기에 더 많이 쓰이는 것 같습니다.압축명령에는 
compress 나 gzip 이 따로 있지만 tar 명령으로 통합해서 쓰면 편리하고 좋습니다. 이해를 돕기 위해 압축이나 묶여지는 파일을 "대상파일" 이라고 하고,  압축해서 생긴 파일을 "생성파일" 이라고 
하겠습니다. 우선 파일을 묶는 방법에 대해 알아 봅시다. 

묶기    $ tar cvf  생성 파일명.tar  대상 파일명 또는 대상 디렉토리

풀기    $ tar xvf  생성 파일명.tar


tar 명령으로 파일을 묶을 때는 주의해야 할 것이 있는데 바로 디렉토리 단위로 묶는 것입니다. 
공개 자료실등에서 tar 파일을 받아서 풀 경우 디렉토리 단위로 묶지 않은 파일이면 수십개의 
파일이 풀려 나와 디렉토리가 엉망이 됩니다.  신경을 써야 됩니다. 
tar는 아카이브 안의 파일에 대한 소유권과 허가권을 그대로 가지고 있으며, 심볼릭 링크나 하드링크, 
디렉토리 구조를 유지합니다. 뒤에 나오지만 tar를 이용해서 시스템내에서의 데이터의 이동이나 
복사에 자주 사용됩니다.


$ tar cvf  doc.tar doc/


위 명령은 디렉토리 doc를 모두 묶어서 doc.tar 파일로 만드는 명령입니다. 풀기는 

$ tar xvf doc.tar


doc.tar 파일이 풀리면서 /doc 가 생깁니다. tar 파일의 종류는 다음과 같습니다.

*.tar       

   *.tar.Z     <-- compress 로 압축했을 때

   *.tar.z     <-- gzip 으로 압축(gunzip으로 푼다)  

   *.tar.gz              "

   *.tgz                  "


압축은 compress 나 gzip 등의 명령을 쓰면 됩니다. 

 $ compress   대상파일명.tar

 -> 대상파일명.tar.Z

 $ gzip           대상파일명.tar

 -> 대상파일명.tar.gz


풀기는

 $ uncompress  대상파일명.tar.Z

-> 대상파일명.tar

 $ gunzip          대상파일명.tar.gz

-> 대상파일명.tar


각각의 경우에서 뒤의 확장자 .Z .gz가 붙고 떨어지는 것을 주의 깊게 보셔야 합니다. 
파일을 풀기 전에 tar 파일의 내용을 알고 싶을 때 직접 풀지 않고 내용을 보려면 -t 옵션을 주면 
풀기를 test 할 수 있습니다.

$ tar tvf  대상 파일명.tar


위에서 말 했듯이 tar 명령으로 묶기와 압축을 동시에 수행할 수 있습니다. 
바로 tar 명령에서 z 옵션을 주면 되지요.
 

$ tar cvfz

  $ tar xvfz

  $ tar tvfz


그럼  응용을 해볼까요.  다음의 네 가지는 파일을 묶고 압축하는 방법과 풀기입니다.

1. 전통적인 사용방법

 $ tar cvf  생성파일명.tar  대상파일/

-> 생성파일명.tar

 $ gzip     생성파일명.tar

-> 생성파일명.tar.gz

 $ gunzip  생성파일명.tar.gz

-> 생성파일명.tar

 $ tar xvf   생성파일명.tar

-> 대상파일/


2.파이프를 이용한 압축

$ tar cvf - 대상파일/ | gzip > 생성파일명.tgz 

->  생성파일명.tgz

$ gunzip -c  생성파일명.tgz | tar xvf -

->  대상파일/


3. 동시수행

 $ tar cvfz  생성파일명.tgz  대상파일/

-> 생성 파일명.tgz

 $ tar xvfz  생성파일명.tgz

-> 대상파일/


4. 묶어서 디렉토리 옮긴 후 풀기 

tar cvf - 대상파일명 | ( cd 디렉토리명 ; tar xvf - )

4번은 파일이나 디렉토리를 묶어서 파이프로 넘기고 cd로 목적 디렉토리로 가서 파일을 푸는 과정으로 하위 디렉토리가 복잡한 디렉토리의 이동에 유용하게 사용됩니다.

반응형

//