본문 바로가기

Linux

[Linux] 파일 압축 및 해제(Archive 관리 & tar 명령어)

1. Intro


리눅스를 활용하면서 tar형태의 압축 파일을 많이 보게 된다.

tar형태로 압축하거나 압축된 파일을 해제하는 방법을 알아보자.



2. process


☞ options


-x: 묶음을 해제

-c: 파일을 묶음

-v: 묶음/해제 과정을 화면에 출력

-z: gunzip을 사용

-f: 파일 이름 지정

-p: 권한(permission)을 원본과 동일하게 유지



1) Compress


A. tar.gz 형태 압축


tar로 묶인 archive를 gunzip을 사용하여 .tar.gz의 확장자를 갖는 압축 파일로 생성한다.

$tar -cvzf [압축 파일 이름.tar.gz] [압축할 파일 또는 폴더 이름 1] [압축할 파일 또는 폴더 이름 2] [압축할 파일 또는 폴더 이름 3] ...


※ cat.jpg와 dog.jpg는 압축하고 bird.jpg는 압축하기 싫을 때 

     Assume 현재 디렉토리는 test이고, test 내부에 cat, dog, bird가 모두 존재하며 압축 파일 명은 images로 한다.

$tar -cvzf --exclude=./test/bird.jpg images.tar.gz ./test


B. tar 형태 압축


option에서 gunzip 압축에 해당하는 -z를 제외한다.

$tar -cvf [압축 파일 이름.tar.gz] [압축할 파일 또는 폴더 이름 1] [압축할 파일 또는 폴더 이름 2] [압축할 파일 또는 폴더 이름 3] ...


C. zip 형태 압축


윈도우와 리눅스 사이에서 zip파일을 빈번하게 교환하는 상황이 존재하므로, 굳이 생각해보면,

$zip -r [압축 파일 이름.zip] [압축 파일 또는 폴더 이름 1][압축 파일 또는 폴더 이름 2][압축 파일 또는 폴더 이름 3] ...



2) Decompress


A. tar.gz 압축 해제


option에서 묶음을 나타내는 -c를 묶음 해제인 -x로 치환한다.

$tar -xzvf [압축 파일 이름.tar.gz]


B. tar 압축 해제


option에서 gunzip 압축에 해당하는 -z를 제외하고 -c를 -x로 치환한다.

$tar -xzf [압축 파일 이름.tar.gz]


C. zip 압축 해제


리눅스에서 zip 형태로 압축하거나 압축 해제하기 위해서 unzip이라는 package가 build 되어 있어야 한다.

$sudo apt-get install unzip

$unzip [압축 파일 이름.zip]


D. tar.xz 압축 해제


두 번에 나누어 압축 해제해야 한다. (.xz 압축 해제  .tar 압축 해제)

$xz -d [압축 파일 이름.tar.xz]

$tar -xvf [압축 파일 이름.tar]