Unix 계열이나 Linux에서 전통적으로 많이 사용했던 압축 프로그램은 92년에 발표된 gzip(GNU Zip) 입니다.

이후 96년에는 더 압축률이 좋은 bzip2가 발표되었고 가장 최근에 발표된 xz 는 더 좋은 압축률을 보여주고 있습니다.

windows 용 압축 프로그램과는 달리 여러 파일을 압축하는 기능이 없으므로 tar 로 묶은 후에 gzip, bzip2, xz 로 압축하는 방식을 많이 사용합니다.


gzip

파일 압축

gzip 은 단일 파일을 압축하는 명령어로 압축할 대상 파일을 주고 실행하면 됩니다.

gzip source.txt
BASH


압축하면 확장자 .gz 를 붙이고 원본 파일은 삭제됩니다. 즉 위의 예에서 source.txt 는 삭제되고 source.txt.gz 가 생깁니다.


gzip 은 1 부터 9까지 숫자로 압축률을 지정할 수 있는데 -1(--fast) 이 가장 빠른대신 압축률이 저조(⬇)하고 -9(--best) 는 느린대신 압축률이 뛰어나며(⬆) 기본은 -6 입니다.

다음은 가장 좋은 압축률로 압축합니다.

gzip -9 source.txt
BASH


파일명 지정

gzip 은 -o 같이 압축 대상 파일명을 지정하는 옵션이 없습니다. 대신 출력을 stdout 으로 보내고 이를 파일로 redirection 하는 방법을 써야 합니다.

출력을 stdout 으로 보내는 옵션은 -c 이며 다음 예제는 source.txt 를 mycompress.gz 로 압축합니다.

gzip -9 -c source.txt -c > mycompress.gz
BASH


gunzip 으로 압축 해제

압축을 해제하려면 gunzip 명령어를 사용하면 되며 압축 원본은 삭제되고 확장자에서 .gz 을 제외한 파일명이 생깁니다. 아래 명령을 실행하면 압축 해제된 mycompress 파일이 생기며 압축 원본은 삭제됩니다.

gunzip mycompress.gz
BASH


또는 gzip -d 옵션을 사용해도 해제할 수 있습니다.

gzip -d mycompress.gz
BASH


bzip2

bzip2 는 block sorting 을 하는 압축 프로그램으로 gzip 보다 압축률이 뛰어납니다.


압축

사용법과 옵션은 gzip 과 유사하며 옵션없이 파일명을 주고 실행하면 원본 파일을 압축합니다.

bzip2 source.txt
BASH


bzip2 도 압축하면 확장자 .bz2 를 붙이고 원본 파일은 삭제되며 위의 예에서 source.txt 는 삭제되고 source.txt.bz2 가 생깁니다.


bzip2 도 gzip 처럼 -1 에서 -9 까지 압축률을 지정할 수 있습니다.

파일명 지정

bzip2 도 gzip 처럼 출력을 stdout 으로 보내고 이를 파일로 redirection 해서 압축 파일명을 지정하며 다음 예제는 source.txt 를 mycompress.bz2 로 압축합니다.

gzip -9 -c source.txt -c > mycompress.bz2
BASH

해제

bzip 도 압축 해제용 명령어인 bunzip2 를 사용하면 되며 gzip 과 마찬가지로 압축 원본은 사라지고 확장자에서 .bz2 를 제외한 파일명이 생깁니다. 

아래 명령을 실행하면 압축 해제된 source.txt 파일이 생기며 압축 원본은 사라집니다.

bunzip2 source.txt.bz2
BASH

또는 bzip2 를 -d 옵션과 함께 해제할 압축 파일을 지정해 주어도 됩니다.

bzip2 -d source.txt.bz2
BASH


xz

xz 는 LZMA 압축 알고리즘을 사용하는 유틸리티로 3중에서 가장 좋은 압축률을 보여주며 gzip 과 사용법이 유사합니다.


압축

xz 명령어 뒤에 압축할 파일명을 적어주며 -0 부터 -9 까지 압축률을 지정할 수 있습니다. 다음 예제는 가장 좋은 압축률로 압축하며 원본은 삭제되고 source.txt.xz 파일이 생깁니다.

xz -9 source.txt
BASH


xz 는 원본을 보존하는 -k 옵션을 제공합니다.

xz -k -9 source.txt
BASH


해제

-d 옵션으로 압축을 해제할 수 있으며 압축 원본은 삭제됩니다.

xz -d source.txt.xz
BASH

같이 보기