공부/Linux

13. 압축과 아카이빙

김대욱대욱 2018. 3. 19. 14:22

목표

1. 압축 관련 명령어

2. 압축 + 아카이빙 관련 명령어



1. 압축 관련 명령어

 ▷ gzip / gunzip CMD

gzip 명령어 다음에 파일의 이름을 쓰면 파일이 압축된다. 

gunzip 명령어 다음에 압축된 파일의 이름을 쓰면 압축을 해제할 수 있다. 

압축된 파일의 내용은 gzcat, gunzip -c 를 통해 볼 수 있다. 

  - 명령어 형식

# gzip file1                 /* file1을 압축한다. --> file1.gz */

# gunzip -c file1.gz       /* file1.gz의 내용을 출력한다. */

# gunzip file1.gz          /* file1.gz을 압축해제 한다.(# gzip -d file1) --> file1 */

  - 명령어 옵션

-S : 기본 생성 파일인 .gz 형태가 아닌 지정한 파일로 생성

-d : 압축된 파일의 압축을 해제한다. ( # gzip -d file1 )

-f : 이미 이전에 압축파일이 존재하더라도, 무시하고 압축파일을 생성

-r : 지정한 것이 디렉토리라면 하위 디렉토리와 파일까지 모두 압축

-v : 압축 통계를 보여준다.


  

  그냥 압축 말고 옵션에 -9 와 같이 숫자를 넣어서 압축률을 설정할 수 있다. 숫자가 높을수록 압축률이 높다.


 ▷ bzip2 / bunzip2 CMD

블럭 정렬 텍스트 압축 알고리즘과 Huffman 코딩을 이용하여 파일을 압축한다. 

높은 성능의 압축률을 자랑한다.

  - 명령어 형식

# bzip2 file1                  /* file1을 압축한다. --> file1.bz2

# bunzip2 -c file1.bz2       /* file1.bz2의 내용을 출력한다. */

# bunzip2 file1.bz2          /* file1.bz2을 압축해제 한다.(# bzip -d file1.bz2) --> file1 */

  - 명령어 옵션

-c : 파일을 압축 또는 풀어서 표준 출력으로 보낸다.

-d : 압축을 푼다.

-z : 파일을 압축한다.

-t : 지정된 파일의 무결성을 검사하지만, 압축을 풀지 않는다.

-f : 압축, 해제할 때 같은 이름의 파일이 있을 경우 덮어쓰기 한다.

-k : 파일을 압축이나 해제할 때 원본파일을 지우지 않는다.

-q : 경고 메시지가 나오지 않는다.

-v : bzip2 작업사항을 자세히 볼 수 있다.

-1~9 : 압축할 때의 블록 크기를 정해준다.

  ※ 사용방법은 위의 gzip 처럼 명령어를 입력해서 쓰면된다.


2. 압축 + 아카이빙

 ※ 아카이브란 말이 기록보관소란 뜻이므로 아카이빙은 별도의 보관소로 옮기는 작업으로 생각하면 될 것 같다.


 ▷ tar CMD (tape archive)

  - 여러개의 파일이나 디렉토리를 한 개의 묶음 파일로 만들 때 사용한다. 

  - 명령어 형식 (tar 명령어 사용시 옵션에 -기호 생략가능)

# tar cvf file.tar file1 file2 ....     /* file1과 file2를 file.tar 이름으로 묶는다. */

# tar tvf file.tar                    /* file.tar의 내용을 확인한다. */

# tar xvf file.tar                   /* file.tar을 해제한다. */


# tar cvzf file.tar.gz file1 file2    /* file1과 file2를 file.tar로 묶고 압축한다. --> file.tar.gz */

# tar tvzf file.tar.gz                /* file.tar.gz의 내용을 확인한다. */

# tar xvzf file.tar.gz               /* file.tar.gz의 압축을 풀고 해제한다. */


# tar cvjf file.tar.bz2 file1 file2    /* file1과 file2를 file.tar로 묶고 압축한다. --> file.tar.bz2 */

# tar tvjf file.tar.bz2               /* file.tar.bz2의 내용을 확인한다. */

# tar xvjf file.tar.bz2              /* file.tar.bz2의 압축을 풀고 해제한다. */


  - 명령어 옵션

-c : 여러 개의 파일을 하나의 파일로 묶을 때

-v : 생성과정을 보여 줌

-x : 파일의 압축을 해제하고 풀어 낼 때

-r : 파일 및 디렉토리 추가

-u : tar 파일과 새로운 디렉토리 내의 파일과 비교하여 최근 파일을 아카이브에 추가

-t : tar 파일의 내용을 확인할 때

-z : gzip과 관련하여 압축이나 해제를 한꺼번에 할 때

-j, -l : bzip2를 이용해서 압축한다.


  



  


 ▷ zip / unzip CMD

  - 여러개의 파일을 압축과 해제

  - 명령어 형식

# zip file.zip file1 file2 file3           /* file1, file2, file3을 file.zip으로 압축한다. */

# unzip -l file.zip                     /* file.zip 의 내용을 리스트로 출력한다. */

# unzip file.zip                        /* file.zip 을 압축해제 한다. */