본문으로 바로가기

압축과 아카이브

category Linux/Linux 기초 2017. 8. 22. 23:03

1. Compress  압축 ( 용량을 줄임 )

    • gzip / gunzip CMD

gzip 명령어는 파일을 압축할 때 사용한다. gzip 명령어 다음에 파일의 이름을 쓰면 파일이 압축되며, 파일에 확장자(.gz)가 붙게 된다. gzip 명령어는 Lempel-Ziv coding (LZ77)을 사용한다. 압축되기 전의 파일의 속성 정보는 압축이 된 이후에도 유지된다. gzip 명령어로 압축된 파일의 내용은 gzcat 명령어나 gunzip 명령어의 -c 옵션을 사용하여 볼 수 있다. 압축을 해제 할 때는 gzip 명령어 다음에 압축된 파일을 쓰면 된다. 그럼 압축이 해제되며, 파일의 확장자(.gz)가 없어지게 된다.


[명령어 형식]

(압축) # gzip file1

                    file1.gz

(확인) # gunzip -c file1.gz (# zcat file1.gz)

(해제) # gunzip file1.gz (# gzip -d file1.gz)



[명령어 옵션]

-d    압축된 파일을 해제한다.

-f    이미 이전에 압축 파일이 존재하더라도 무시하고 만든다.

-r    지정된 것이 디렉토리라면 하위 디렉토리도 모두 압축한다.

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


-파일의 압축율

gzip -9v file1                -> 압축율이 높다.     속도 느리다.  ( 서버에 저장할때 )

       -8

       -7

        .....

       -3

       -2

gzip -1v file1                -> 압축율이 낮다.    속도 빠르다.    ( 통신 할때 )

보통 숫자를 부여하지 않고 사용한다. 


    • bzip / bunzip CMD

높은 성능의 압축률을 자랑하는 유틸리티(Utility) 이다. Burrows-Wheeler 블록 정렬 테스트 압축 알고리즘과 호프만 코딩을 사용하여 파일을 압축한다. bzip2tar 아카이브 파일을 압축하게 되면 기존 아카이브 파일이 제거되고, bz2 확장자가 생성된다.


[명령어 형식]

(압축) # bzip2 file1

                        file1.bz2

(확인) # bunzip2 -c file1.bz2 (# bzcat file1.bz2)

(해제) # bunzip2 file1.bz2 (# bzip2 -d file1.bz2)


[명령어 옵션]

gzip 과 동일한 옵션을 가진다.



 

2. Compress + Archive 압축과 아카이브(여러개의 파일을 하나로 모음)  아카이브는 백업이라고 생각할 수 있다.

    • tar CMD

tar(tape archive) 명령어는 여러개의 파일이나 디렉토리를 한 개의 묶음파일로 만들 때 사용한다. 또는 Tape 디바이스에 백업할 때 사용한다. tar 명령어는 c, x, v, f 옵션들을 사용할 수 있다. 한 개의 아카이빙 할 때는 c 옵션을 사용하고 f 옵션으로 만들어질 파일의 이름을 지정하면 된다. 아카이빙 파일의 내용을 볼때는 t 옵션을 사용하고 f 옵션으로 아카이빙 파일을 지정한다. 아카이빙 파일을 해제 할 때는 x 옵션을 사용하고 f 옵션으로 아카이빙 파일을 지정하면 된다.


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

# tar cvf <묶음파일명> <파일명1> <파일명2> ...

# tar tvf <묶음파일명>

# tar xvf <묶음파일명> 

 

[명령어 옵션]

-c        create 파일들을 하나의 파일로 묶을때

-v        verbose 생성 과정을 보여준다

-x        extract  파일의 압축을 해체할때

-f         file

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

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


[명령어 활용]

# tar cvf file.tar file1 file2 file3

# tar tvf file.tar 

# tar xvf file.tar 


# tar cvzf file.tar.gz file1 file2 file3

# tar tvzf file.tar.gz 

# tar xvzf file.tar.gz


# tar cvjf file.tar.bz2 file1 file2 file3

# tar tvjf file.tar.bz2

# tar xvjf file.tar.bz2

    • zip CMD

[zip 명령어 형식]

(압축) # zip file.zip file1 file2 file3

(확인) # unzip -l file.zip

(해제) # unzip file.zip 


[명령어 활용]

# zip file.zip file1 file2 file3

# unzip -l file.zip                /* 압출풀면서 압축 내용 출력 */

# unzip file.zip


    • jar CMD ( Java Archive )

[명령어 형식]

# jar cvf file.jar file1 file2 file3

# jar tvf file.jar

# jar xvf file.jar


jar이 실행되지 않으면 CMD 자체가 서버에 설치되지 않은 것이다. 

# which jar     /* jar 위치 확인 */

CMD 가 없다고 하면 설치를 해줘야 가능하지만 지금은 일단 형식만 알아두고 넘어가자.



*** 보통 실무에서 사용할때는 압축을 하는 것보다 인터넷상에서 파일들을 받아 압축을 풀어 사용하는 경우가 더 많다.

file.gz ---- gzip -----> # gunzip file.gz (# gzip -d file.gz)

file.bz2 ---- bzip2 ----> # bunzip2 file.bz2 (# bzip2 -d file.bz2)

file.tar.gz ---- tar/gzip -> # tar xvzf file.tar.gz (# tar xvf file.tar.gz)

file.tgz

file.tar.bz2 ---- tar/bzip2-> # tar xvjf file.tar.bz2 (# tar xvf file.tar.bz2)

file.tbz

file.zip ---- zip ------> # unzip file.zip

file.jar ---- jar ------> # jar xvf file.jar

'Linux > Linux 기초' 카테고리의 다른 글

프로세스 관리  (0) 2017.08.24
쉘(shell)의 특성  (0) 2017.08.23
검색 관련 명령어  (0) 2017.08.22
관리자가 알아두면 유용한 명령어  (0) 2017.08.22
사용자 통신할 때 사용하는 명령어  (0) 2017.08.22