본문 바로가기

Dev. Server/Linux

[리눅스] Linux 압축&압축해제 (gzip, bzip, tar)

 

 

 

 gzip (GNU zip)
: GNU에서 만든 압축프로그램입니다. gzip으로 압축하면 파일명이 .gz으로 뒤에 붙고, 압축을 풀기위해 gunzip명령을 사용합니다.


 bzip


: gzip보다 압축률은 더 좋지만, 시간이 더 걸리는 단점이 있습니다. bzip2로 압축하면 파일명이 .bz2라고 붙고, 압축을 풀기위해 bunzip2 명령을 사용합니다.

 tar (Tape Archive)
: 여러 파일들을 하나의 파일로 묶어주는 명령으로 사용합니다.
 디렉토리 압축이 가능하고, 다중압축(여러개의 파일을 동시에) 가능하다.
 또한, gzip이나 bzip2와 조합이 가능하다.

 

 

 

 


 

※ gzip / bzip2

 

 

우선, 실습을 위해 zip이라는 디렉터리를 생성해주고, zip디렉터리로 경로 이동해줍니다.
touch명령어를 사용해서 zip디렉터리에 파일 1,2,3,4,5,6을 생성해줍니다.
모두 생성이 잘되었는지 ls를 통해 확인해줍니다.

 

 

 

 

파일 '1'을 압축해주기 위해 gzip이라는 명령어를 사용합니다.
파일 '2'를 압축해주기 위해 bzip2라는 명령어를 사용합니다.
ls를 통해 확인해보면 1.gz 그리고 2.bz2로 모두 압축이 된걸 확인할수있습니다.
(모두 원본파일이 변환되었습니다.)
gzip과 bzip2는 위에 개념에서 설명드렸습니다.

 

 

 

 

 

초록색 밑줄은 에러가 발생했다는 표시입니다.
동일한 압축도구로는 중복압축이 되지않는다는 문구입니다.
위에서 파일'1'을 압축했는데 동일한 압축도구로 사용하면 에러가 발생합니다. (파일'2'도 동일)

 

 

 

 

하지만, 서로 다른 압축도구로는 중복 압축이 가능합니다.
2.bz2을 gzip압축도구 명령어를 사용해서 중복 압축하였고, 1.gz은 bzip2압축도구 명령어를 통해 압축했습니다.
ls로 확인하면 압축이 중복된것을 확인할수있습니다.

 

 

 

 

 

이번에는 디렉터리를 압축하려했으나, gzip과 bzip2으로는 디렉터리(폴더)는 압축이 불가능하다는 에러가 발생합니다.

 

 

 

gzip *을 통해 모두 압축해줍니다.
(현재 2.bz2.gz는 이미 압축되어있습니다.)

 

 

 

gzip -d옵션을 사용해서 6.gz을 파일'6'로 압축을 풀어줍니다. - (옵션사용 압축해제)
gunzip명령어를 사용해서 5.gz을 파일'5'로 압축을 풀어줍니다. - (옵션없이 압축해제)
gunzip *을 통해 압축을 모두 해지해줍니다. (5,6 파일은 이미 해지했기에 위와같이 뜹니다.)

bzip2 -d옵션을 사용해서 2.bz2를 파일 '2'로 압축을 풀어줍니다. - (옵션사용 압축해제)
bunzip2명령어를 사용해서 1.gz.bz2을 파일'1'로 압축을 풀어줍니다. - (옵션없이 압축해제)
나머지 1.gz도 압축을 해제해줍니다.
그리고 모두 확인하기위해 ls명령어를 사용하면 모두 압축이 해제된걸 확인할수있습니다.

 

 

 

 


 

 

 

※ tar

 

위와 이어서 1,2,3,4,5,6의 원본 파일은 두고 새롭게 압축하며 실습해보겠습니다.
tar cvf옵션을 통해 파일 '1'을 1.tar로 압축해줍니다.
tar cvf옵션을 통해 1.tar를 11.tar로 다시 압축해줍니다.
tar cvf옵션을 통해 gzip과 bzip에서 하지못했던 디렉터리를 tar를 통해 zip디렉토리를 압축해줍니다.
(옵션은 맨위를 참고해주세요.^^)

 

 

 

 

tar -xvf옵션을 통해서 zip 폴더 압축을 해제해줍니다.
ls로 확인해보면 zip.tar압축파일과 zip.tar 압축을 푼 zip도 함께 있는걸 확인할수있습니다. (초록박스 참고)