tar gzip 압축하기 압축풀기 커맨드

2010. 7. 2. 15:4499. 정리전 - IT/13. Unix 얇팍지식

파일 모으기
tar -cvf 압축할이름.tar 압축대상파일들을 스페이스를 줘서 나열
파일 잘됬나 확인
tar -tvf 압축한이름.tar
파일 풀기
tar -xvf 압축한이름.tar

압축하기
gzip -9f 압축한이름.tar
해동하면서 풀기
gzip -cd 압축한파일명.tar.gz | tar -xvf -

tar 파일 압축 관련
- 압축하기

   [특정디렉토리를 특정이름으로]
   : tar cvf 이름.tar 폴더명

   [tar를 제 압축]
   : gzip 이름.tar

   [한번에 tar + gzip 압축하기]
   : tar -cvfz 이름.tar.gz 묶을파일과디렉토리들

   [한번에 tar + gzip + 퍼미션 유지하여 압축하기]

: tar -cvfzp 이름.tar.gz 묶을파일과디렉토리들

  
- 압축풀기
   [tar 압축 풀기]
   : tar xvfz 이름.tar

   [tar + gzip 압축 풀기]
   : tar -xvfz 이름.tar.gz

   [압축풀기 - 퍼미션 유지시]

: tar -xvfpz 이름.tar
     (p옵션은 퍼미션을 유지하여 실행가능하게 하기 때문에 CGI의 경우 사용)


- 디렉토리 삭제( 하위 폴더 및 파일 까지 모두)
   : rm -rf 디레토리명

- 확장자 정리
 .tar
tar는 정확히 말해서 압축 프로그램이라기 보다는 단순히 여러 개의 파일을 하나의 파일로 묶어주는 프로그램이다.
유 닉스 기반의 압축 프로그램들은 도스와는 달리 여러 개의 파일을 한 번에 묶어서 압축해 주는 기능을 지원하지 않기 때문에 우선 tar로 묶은 후에 압축하는 방법을 많이 사용한다.

압축 : tar -cvf .tar .tar <묶을 파일 이름>
해제 : tar -xvf

.Z
이 프로그램은 유닉스에서 기본적으로 제공되는 압축 프로그램이다.
이것은 파일을 하나씩만 압축할 수 있으며, 확장자가 대문자 Z임에 주의해야 한다.
(소문자 z인 경우에는 gzip을 사용)

압축 : conpress <파일 이름>
해제 : uncompress <파일 이름>

.gz 또는 .z

이 프로그램은 유닉스에서 압축한 프로그램을 도스 상태에서 해제할 때 가장 유용하게 사용된다.
예를 들면 유닉스 상태에서 문서를 gzip으로 압축한 다음, PC로 전송한 후에 PC용 gzip으로 압축을 푸는 것이 가능하다.
물론 다른 프로그램도 가능하지만 권장할 만한 프로그램이다.

압축 : gzip <파일 이름>
해제 : gzip -d <파일 이름>

.tar.Z

이 것은 tar로 묶은 후에 compress를 사용하여 압축한 것이다.
uncompress를 사용해서 압축을 푼 다음, 다시 tar를 사용해서 원래의 파일들을 만들어내면 된다.
아니면 다음과 같이 한 번에 풀 수도 있다.

zcat <파일이름>.tar.Z | tar xvf -

.tar.gz 또는 .tar.z

gzip을 사용해서 푼 다음 다시 tar를 사용해서 원래 파일을 만들어 낼 수 있다.
하지만 다음과 같이 하면 한 번에 처리를 할 수 있다.

gzip -cd 파일.tar.gz | tar xvf -

1. tar(tape archive) *archive 여러개의 파일을 압축하여 하나로 모은 것
 이 명령어는 여러개의 파일이나 디렉토리를 통째로 묶어 하나의 파일로 만들거나, 묶은 파일을 원래 상태대로 풀 때 많이 사용된다. 자체에 압축기능은 없으나 여러개의 작은 파일이나 디렉토리를 묶어서 하나의 파일로 만들어 준다.
 
단, 특정확장자만 골라서 묶어주는(tar -cvf test.tar *.gif) 기능은 없다.
 
 
 
  1) 파일을 묶을때 :
     -c(create) : tar 화일을 생성한다.
     -v(verbose): 현재 처리중인 파일의 경로명이 화면에 출력된다.
     -f : backup 화일명을 지정 한다.
     -r : tar 화일 끝에 파일을 추가한다. 
 
     tar -cvf 묶인후파일명 묶일파일명
     tar -cvf 묶인후파일명 *
 
예)
* tar -cvf swingme.tar test.txt   
    test.txt 파일을 swingme.tar 이라는 파일명으로 묶는다.
* tar -cvf swingme.tar test.txt exam.txt  
    test.txt파일과 exam.txt 파일을 swingme.tar 파일로 묶는다. 
*  tar -cvf swingme.tar *  
    현재 디렉토리에 있는 파일 전부를 swingme.tar 파일로 묶는다.
* tar -rvf swingme.tar haha.txt  
    swingme.tar 파일 끝에 haha.txt 파일을 추가하여 묶는다.
 
2) 묶은 파일을 풀때 :
    x(extract) : 묶여진 파일을 풀기
 
     tar -xvf 묶여진파일.tar
 
예)
* tar -xvf swingme.tar  
     swingme.tar로 묶인 파일은 푼다.
* tar -xvf swingme.tar test.txt 
    swingme.tar로 묶인 파일에서 test.txt 파일만 추출한다.
 
2. gzip

 이 명령어는 tar명령어와는 달리 압축기능이 있고, 압축을 하면 원본 파일을 제거하고 압축된 파일만 남겨 두며, 압축을 해제하면 압축된 파일(.gz)은 제거되고 압축 해제된 파일만 남게된다. 압축을 풀때는 -d 옵션을 사용해도 되고 gunzip 명령어를 사용해도 된다.

 단, gzip 명령어는 하나의 파일만 압축하는 기능을 가지고 있으며, 동시여 여러개의 파일이나 디렉토리를 묶어 압축해주는 기능은 없으므로 일단 tar 을 이용해 하나의 파일로 묶고, 묶인 파일을 gzip을 이용해서 압축하면 된다.

 

1) 압축할때

  gzip -옵션 압축할 파일
   -1 : compress faster
   -9 : compress better
   -v(verbose) : 압축 결과를 함께 출력 
   -r(recursive *반복적인) : r 옵션을 사용하면 지정한 디렉토리의 파일을 하나 하나
                                          개별적으로 반복 압축해준다.
    
예)
* gzip -1 swingme.tar  
    swingme.tar 파일을 압축
 
* gzip -9v swingme.tar
    swingme.tar 파일을 압축하되 압축율을 높이고 압축된 결과(압축률)를 보여준다.
 
* gzip -r sub
   현재 디렉토리의 하위 디렉토리인 sub에 있는 파일들을 개별적으로 반복 압축한다.
   sub라는 디렉토리를 통째로 압축해주는 것이 아니다.
  
2) 압축풀때 :
    gzip -d 압축한파일
    -d(decompress)
 
예)
* gzip -d swingme.tar.gz  
   swingme.tar.gz 압축파일을 푼다.
 
* gunzip swingme.tar.gz
   swingme.tar.gz 압축파일을 푼다.
 
 
Tip : 묶으면서 압축하기
 
- 모든파일을 swingme로 묶으면서 압축, 원본파일은 그대로 유지됨
 
tar -cvf * | gzip > swingme.tar.gz
                 |  파이프(필터) : 앞 명령어의 결과가 뒷 명령어의 입력으로 사용된다.
                              >  리다이렉션 : 출력방향 바꾸기

3. jar
 
   tar 사용법과 같음

1) 파일묶기

     jar cvf swingme.jar include 

     include 디렉토리를 swingme.jar 로 묶는다.

 

     jar cvf swingme.jar *.class *.java  

     확장자가 .class 모든파일과 .java 모든파일을 swingme.jar 로 묶는다. 

 

     jar cvf swingme.jar include WEB-INF 

     nclude 디렉토리와 WEB-INF 디렉토리를 swingme.jar 로 묶는다.

  2) jar파일 풀기
     jar xvf swingme.jar 

     swingme.jar 파일을 풀음