개발입문/개발환경 세팅

맥 터미널 명령어 입문 6 tar.gz 압축/압축해제

haloaround 2017. 1. 2. 19:05
.tar.gz는 UNIX/LINUX 에서 소프트웨어를 다운로드했을 때 ~/Downloads 에서 확인하실 수 있는 확장자입니다. tar 과 gz 는 각각 UNIX, LINUX 에서 사용하는 아카이빙 및 압축 기법으로, 두 명령어는 함께 긴밀하게 사용됩니다. 물론 GUI에서 .tar.gz 파일을 더블클릭을 해서 Extract 할 수 있지만 명령어로 세부 옵션으로 (압축률) 압축해제 경로까지 지정해서 한번에 작업할 수도 있습니다. 

실용적으로 UNIX, LINUX 터미널에서 압축해제를 위해서는 이 한 구문만 기억하시면 됩니다. 하지만 더 이 구문을 더 이해하고 싶다면, 아래 포스트를 차근히 읽어보세요 :) 

$ tar -xvzf [파일명.tar.gz] -C [압축해제경로]


tar, gz 개요

1. .tar

tar 명령어는 스트리밍 하기 위한 파일 아카이브를 생성/관리합니다. : manipulate tape archives 즉 쉽게 설명하면 여러 파일 및 폴더를 번들링 해서 하나의 파일로 만듭니다.

각 합성어의 의미는 다음과 같습니다. 

c     create        생성
v     verbose     명령어 반영결과 출력
x     extract      추출
f     file             특정 file 로 읽고 쓸수 있음

2. .gz

gz 는 압축 파일입니다. .tar로 번들링된 파일을 단번에 압축할 때 주로 사용됩니다. : compression/decompression tool using Lempel-Ziv coding (LZ77)

-1 ~ -9             압축속도 및 압축률을 조정 정도
-9                    압축률 높음, 압축속도 느림
-k   keep          압축대상 파일유지 (default 삭제)
-d   decompress 압축해제

.tar.gz 번들링/압축 

1. 번들링 tar

$ tar -cvf [파일번들.tar] [파일1] [파일2]

$ tar -cvf Publication.tar Publication_1209.docx Publication_1209.pages
a Publication_1209.docx
a Publication_1209.pages    // -v 리스팅

2. 압축 gzip

$ gzip -v [파일명.tar]

$ gzip -v Publication.tar
Publication.tar     5.8% -- replaced with Publication.tar.gz     //-v 리스팅


tar.gz 번들링/압축 해제

3. 압축 해제  gzip -d

$ gzip -dk [파일명.tar.gz]

$ gzip -dk Publication.tar.gz
Publication.tar.gz:    5.8% -- replaced with Publication.tar

4. 번들링 해제 tar -x

tar -xvf [파일명.tar] 

$ tar -xvf Publication.tar 
x ./._Publication_1209.docx
x Publication_1209.docx
x ./._Publication_1209.pages
x Publication_1209.pages


번들링,압축 동시에

5. tar & gzip

$ tar -cvzf [파일명.tar.gz] [파일1] [파일2] 

$ tar -cvzf Publication.tar.gz Publication_1209.docx Publication_1209.pages 


6. tar-x & gzip (-d)

$ tar -xvzf [파일명.tar.gz] 

$ tar -xvzf [Publication.tar.gz]


7. 압축해제 경로 destdir (destination Directory)  

$ tar -xvzf [파일명.tar.gz] -C [압축해제경로]

$ tar -xvzf [Publication.tar.gz] -C ~/Desktop -C ~/Desktop