프로그래밍 농장

Linux [ 압축 ( compress, zip, gzip, bzip2, xz) ] 본문

Linux

Linux [ 압축 ( compress, zip, gzip, bzip2, xz) ]

Tennessee201 2019. 11. 1.
728x90

-리눅스에서의 압축방법에 대해서 알아보자 

 

-기본적으로 리눅스에서는 compress , zip , gzip , bzip2 , xz 들을 이용해 압축작업을 한다. 
         (  ==각 유틸에 따라서 압축 방법, 압축속도, 압축률 차이가있음.  )

== 요즘주로사용하는 명령어 : gzip , bzip2 ,xz 등을 사용함.

==쓰는 형식은 같아도 사용하는 압축도구에 따라서 압축되는 크기차이가있다. 

 


-압축해보기



1-1. compress   -> compress [파일명]    :  z확장자가붙어서 압축되며, 원본이 사라짐.
 

1-2 . compress 압축해제법 : 

    1. uncompress 명령어로 압축할떄처럼 똑같이 압축파일명 대입후 실행

    2. compress -d 옵션을 넣어서 똑같이 압축파일명 대입후 실행

 

 

2-1. gzip  --> gzip [파일명]   : gz확장자 , 원본이 사라짐

2-2 . gzip 압축해제법 : 

     1.  gunzip 명령어로 압축할떄처럼 똑같이 압축파일명 대입후 실행

     2.  gzip -d 옵션을 넣어서 똑같이 압축파일명 대입후 실행

 

 

3-1. bzip2   --> bzip2 [파일명]   :  bz2확장자,   원본이 사라짐

3-2. bzip2 압축해제법 : 

       1.  bunzip2 명령어로 압축할떄처럼 똑같이 압축파일명 대입후 실행

       2.  bzip2 -d 옵션을 넣어서 똑같이 압축파일명 대입후 실행

 

4-1. xz  --->  xz [파일명]    : xz확장자, 원본사라짐

4-2. xz 압축해제법 : 

     1.   unxz 명령어로 압축할떄처럼 똑같이 압축파일명 대입후 실행

     2.   xz -d 옵션을 넣어서 똑같이 압축파일명 대입후 실행

 

5-1. zip  ---> zip [생성할 압축 파일명][파일명]    : zip 확장자 , 압축파일이 생겨도 원본이 유지됨. 

5-2. zip 압축해제법 : 

     1. unzip 명령어로 압축할떄처럼 똑같이 압축파일명 대입후 실행

     특이사항 : unzip은, zip은 특성과 마찬가지로, test.zip 을 풀어줘도, test.zip파일 원본은 그대로 같이있다.

 

 

-zip을 제외한 위의 압축 명령어들은 단일압축만 되는것이 기본적이다 .

ex) grub~ grub4를 묶어서 명령어로 압축해도 같은형식으로만 각각 압축된다. 

  그렇다면? 

--> zip 은 다중 압축이 가능 , 하지만, 압축률 성능이 좋지않음.

--> compress , gzip , bzip2 , xz 는 단일 압축만 지원, 다중 압축을 하기위해서, tar 작업 이 필요하다.

tar 작업이란? 단순하게 말하면, 가방에 압축으로 묶어줄 문서들을 담아주는 과정이다. 이 tar과정이후에, 묶인 tar을 여러가지 압축방법을 통해서 작업해주는것이다.

 

 

-tar 사용형식 

보관 : tar cvf [archiving file].tar [source]      --> 여기서 cvf 는 3가지옵션이며, tar는 옵션에 '-'를 쓰지않는다. 

       c: 생성, v: 보여줌, f: 파일묶음지정 /  지정된파일이보관되는과정을 보여줘 

해제 : tar xvf [archiving file].tar

      x: 풀기 

 

그런데 여기서, 그냥 위처럼 tar로 만들게되면, 아래와같이 그냥 test라고만 만들어져서 tar인지 파일인지 구분을못한다.

 

그래서 아래처럼 .tar 를 이름에 붙혀야한다.

그렇다면, 아래와 같이 실행과정이 될것이다. 

그럼 이제 tar 를 푸는것은 옵션만 바꿔주면 된다.  아래와같다.  여기서 쓰이는 옵션 xvf 에서 x 는 풀기라는 뜻이며, 나머지옵션은 위의 압축과 같이 압축/풀이과정을 보여주는 옵션들이다.  결과는 아래와 같다. 

 

 + 추가로, tar 를 풀어줄떄,    -C 옵션을 통해서, 풀어줄 경로를 지정해줄수도있다. 

-C 옵션을 이용해서 /home 경로에 풀어준 결과 

 

-> 위의 작업들을 한줄로 줄여서 같이하고싶다면, 아래와 같은 옵션이 필요하다.

  cfv+옵션명추가

1. tar + gzip  :  z옵션 

 ex)   tar cvfz bin.tar.gz /bin/*

 

2. tar + bzip2   :  j옵션

ex)   tar cvfz bin.tar.bz2/bin/*

 

3. tar + xz :  J 옵션

ex)  tar cfvJ bin.tar.xz /bin/* 

 

 

-실습예제

그렇다면 /bin/*  경로내의 데이터들을  각 압축방법을 이용해서 /comp디렉토리생성후, /comp/* 내의 경로로 압축해본후,   각 압축방법의 압축률을 비교해서 압축률이 높은순으로 나열해보자. 

 

아래 출력결과 / 답안

 

압축률 높은순서 

xz -> bzip2 -> gzip -> zip -> compress

728x90

'Linux' 카테고리의 다른 글

Linux [ skel 에 대해서 ]  (0) 2019.11.04
Linux [ cp : omitting directory 에 대한 설명 ]  (0) 2019.11.04
Linux [ cat 에 대한 여러 옵션들 ]  (0) 2019.10.28
Linux [ cat / head / tail ]  (0) 2019.10.28
Linux [ 시스템 종료 명령 ]  (0) 2019.10.24