안녕하세요, Tizen 개발자 윤진입니다. xz 압축파일이 인기를 끄는 이유는 압축률이 탁월하기 때문입니다. xz는 Unix 계열에서 흔히 사용하는 gzip보다 압축률이 30% 좋고, bzip2 보다도 15% 좋다고 알려져 있죠. (http://tukaani.org/xz/) 게다가 대다수의 플랫폼에서 사용할 수 있으니 폭발적인 인기를 누리는 것은 당연해 보입니다.
리눅스, Mac OS X, Solaris, Windows, DOS까지 대다수 플랫폼에 이식되었습니다. 그리고 이 인기를 토대로 플랫폼의 주요 압축툴로 자리매김하였습니다. gnu의 coreutils도 xz로 압축하고 있습니다. (ftp://ftp.gnu.org/gnu/coreutils/) 2009년까지 gzip과 bzip2를 이용하여 압축을 하였었는데요, 2009년 2월 21일 이후부터는 bzip2 대신 xz 입축파일이 보이기 시작합니다. GNOME 프로젝트도 2011년 4월 21일에 xz 사용을 전격 선언했습니다.
https://mail.gnome.org/archives/devel-announce-list/2011-April/msg00008.html 그리고 기타 수많은 플랫폼에서 xz를 차용한 예는 수도 없이 많습니다. xz는 파일 하나만을 압축하기 위해 설계되었습니다. 다수의 파일을 하나로 묶어주진 않습니다. 따라서 다수의 파일을 압축하기 위해서는 tar와 같은 툴을 사용하여 하나의 파일로 모아야합니다. tar로 다수를 하나로 만든 후 xz로 압축을 하는 방식이지요. 압축을 하면 압축하기 전의 tar 파일은 사라집니다. 압축을 풀 경우에는 역으로 unxz 혹은 xz -d로 압축을 풀고, 그 파일을 다시 tar를 이용하여 원래의 파일들로 환원해야 합니다. xz 툴의 기능을 help를 통해 간단히 살펴보겠습니다.
압축툴이니 압축 옵션 -c와 해제 옵션 -d만 기억하면 되겠네요. default가 압축이기 때문에 -c 옵션이 없어도 압축을 해줍니다. tar로 archieve를 만든다는 가정하에 압축 & 해제를 해보겠습니다. 우선 디렉토리를 하나 선정하여 tar 파일 하나로 묶겠습니다.
inode가 22184223인 6메가 상당의 test.tar 파일로 묶었습니다. 이제 이 파일을 xz로 압축하도록 하겠습니다.
inode가 22184237로 변하였습니다. 새로운 파일을 생성하였네요. 그리고, 확장자 xz가 파일에 붙었습니다. 크기는 6메가에서 3메가로 확연히 줄었습니다. 이제 이 파일의 압축을 해제해보겠습니다.
새로운 파일에 압축을 푼 후에 기존 파일을 지웠나보네요. 그리고 연이어서 tar도 풀면 됩니다.
이상으로 압축계의 아이돌 xz에 대한 설명을 마치겠습니다. 그럼 좋은 하루 보내세요~ 끝_ * References http://tukaani.org/xz/ https://en.wikipedia.org/wiki/Xz https://mail.gnome.org/archives/devel-announce-list/2011-April/msg00008.html |