tar 명령 사용법 정리

 

 

출처: http://hoonie.net/blog/9?TSSESSION=168b0b8c18fc46a2460657891db5aa18


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로 목적 디렉토리로 가서 파일을 푸는 과정으로 하위 디렉토리가 복잡한 디렉토리의 이동에 유용하게 사용된다.

 

 



+ Recent posts