유닉스환경(Linux, UNIX, Solaris등)에서 사용할 수 있는 압축유틸리티는 다음과 같이 4가지가 있으며 여러개의 파일들을 하나의 파일로 묶어주는 tar유틸리티가 있습니다. 압축관련 유틸리티들을 정리해 보면 다음과 같습니다.
이들 압축유틸리티들의 압축효율을 비교해 보면 다음과 같습니다. 오른쪽으로 갈수록 최근에 나온것이며 압축효율이 좋다고 할 수 있습니다. compress < gzip < bzip2 |
tar는 여러개의 파일을 하나의 파일로 묶을 수 있으며 묶여진 파일을 다시 풀수 있는 유틸리티입니다.
또한 묶여진 파일을 풀기전에 어떤파일들이 묶여져 있나를 확인해 볼 수도 있습니다.
먼저 tar파일의 사용형식은 다음과 같습니다.
일반형식 : # tar [옵션] 대상파일
tar를 사용할때에는 여러 가지 옵션에 대해서 알아야합니다.
tar의 옵션에는 약 40여개의 옵션이 있습니다.
하지만 이들 모든 옵션을 모두 사용하는 것은 아니며 중요하고 자주 사용하는 몇 개의 옵션만을 알아두면 됩니다.
그리고 필요한 옵션은 그때그때 메뉴얼(man tar)을 사용하여 참조한 후에 사용하시면 됩니다.
c : tar파일을 생성할때(여러개의 파일을 하나의 파일로 묶을 때) 반드시 사용
d: tar파일과 해당 파일시스템간의 차이점을 확인하고자 할 때 사용
r: tar파일에 다른파일들을 추가하고자 할 경우에 사용
t : tar파일의 내용을 확인하고자 할 때 반드시 사용
f: tar파일을 사용할때에는 반드시 사용
p : tar파일을 생성할때(묶을 때) 당시의 파일퍼미션을 그대로 하여 풀어줄 때 사용
v: 묶을때나 풀어줄 때 파일들의 내용을 자세하게 보려고 할 때 사용
Z: compress로 압축파일을 사용할 때 압축이나 해제까지 한번에 할 때 사용
z : gzip과 관련하여 압축이나 해제를 한꺼번에 하려고 할 때 사용
tar로 파일작업을 하는 경우에는 다음의 세경우가 있습니다.
즉, 첫 번째가 여러개의 파일 및 디렉토리들을 하나의 tar파일로 묶는 경우이며, 두 번째가 이렇게 묶은 tar파일을 다시 풀어준 경우이며, 세 번째의 경우가 묶여져 있는 파일의 내용을 확인하는 것입니다. 즉,
각각의 경우에 대한 예를 들어 보겠습니다.
[sspark@nice dat]$ ls -l
total 44
-rw-r--r-- 1 sspark sspark 5847 Jan 27 10:37 browser.html
-rw-r--r-- 1 sspark sspark 5879 Jan 27 10:37 host.html
-rw-r--r-- 1 sspark sspark 8295 Jan 27 10:37 hour.html
-rw-r--r-- 1 sspark root 858 Dec 7 04:02 log.range
-rw-r--r-- 1 sspark sspark 10733 Jan 27 10:37 page.html
[sspark@nice dat]$ tar cvf myhome.tar *
browser.html
host.html
hour.html
log.range
page.html
위의 예는 현재 디렉토리내에 있는 모든파일 및 디렉토리들을 myhome.tar라는 파일하나로 묶어라는 것입니다.
원본파일들은 그대로 존재하게되며 myhome.tar라는 파일이 새로 생성되어 그 파일내에 모든파일 및 디렉토리들이 들어가게 됩니다.
c옵션을 반드시 사용하셔야합니다.
[sspark@nice dat]$tar tvf myhome.tar
-rw-r--r-- sspark/sspark 5847 2000-01-27 10:37 browser.html
-rw-r--r-- sspark/sspark 5879 2000-01-27 10:37 host.html
-rw-r--r-- sspark/sspark 8295 2000-01-27 10:37 hour.html
-rw-r--r-- sspark/root 858 1999-12-07 04:02 log.range
-rw-r--r-- sspark/sspark 10733 2000-01-27 10:37 page.html
이 예는 myhome.tar라는 tar파일에 어떤파일들이 묶여져 있나를 확인해 본 것입니다.
t옵션을 반드시 사용하셔야 합니다.
[sspark@nice dat]$ ls -l
total 40
-rw-rw-r-- 1 sspark sspark 40960 Jan 27 10:38 myhome.tar
[sspark@nice dat]$
[sspark@nice dat]$tar xvf myhome.tar
browser.html
host.html
hour.html
log.range
page.html
마지막예로서 myhome.tar에 묶여져 있는 파일들을 현재 디렉토리에 풀어준 것입니다.
x옵션을 반드시 사용하셔야합니다.
가장 오래된 압축유틸리티이며 특히 오래전에 압축된 파일들은 거의 대부분 이 유틸리티를 활용하여 압축되어 있습니다.
파일의 끝에 Z가 붙어 있는 압축파일들은 compress로 압축된 것입니다.
일반사용자들 보다 서버관리자가 필히 알아두어야 할 유틸리티입니다.
사용법은 매우 간단하며 예를 들어 보겠습니다.
[sspark@nice dat]$ls -l
total 44
-rw-r--r-- 1 sspark sspark 5847 Jan 27 10:37 browser.html
-rw-r--r-- 1 sspark sspark 5879 Jan 27 10:37 host.html
-rw-r--r-- 1 sspark sspark 8295 Jan 27 10:37 hour.html
-rw-r--r-- 1 sspark sspark 858 Dec 7 04:02 log.range
-rw-r--r-- 1 sspark sspark 10733 Jan 27 10:37 page.html
[sspark@nice dat]$
[sspark@nice dat]$
[sspark@nice dat]$compress *
[sspark@nice dat]$
[sspark@nice dat]$ls -l
total 20
-rw-r--r-- 1 sspark sspark 2999 Jan 27 10:37 browser.html.Z
-rw-r--r-- 1 sspark sspark 2866 Jan 27 10:37 host.html.Z
-rw-r--r-- 1 sspark sspark 3745 Jan 27 10:37 hour.html.Z
-rw-r--r-- 1 sspark sspark 436 Dec 7 04:02 log.range.Z
-rw-r--r-- 1 sspark sspark 4093 Jan 27 10:37 page.html.Z
compress로 압축하기전의 용량과 압축후에 생성된 용량을 확인해 보시기 바랍니다.
압축된 후의 용량이 압축전의 용량의 절반쯤됩니다.
즉 압축률이 50%쯤이라고 볼 수 있죠.
그리고 압축이 된후에는 각각의 파일에 .Z라는 확장자가 붙게됩니다.
이는 compress로 압축되었음을 의미하는 것입니다.
압축을 해제하는 방법은 다음과 같습니다.
[sspark@nice dat]$ uncompress *
[sspark@nice dat]$
[sspark@nice dat]$ls -l
total 44
-rw-r--r-- 1 sspark sspark 5847 Jan 27 10:37 browser.html
-rw-r--r-- 1 sspark sspark 5879 Jan 27 10:37 host.html
-rw-r--r-- 1 sspark sspark 8295 Jan 27 10:37 hour.html
-rw-r--r-- 1 sspark sspark 858 Dec 7 04:02 log.range
-rw-r--r-- 1 sspark sspark 10733 Jan 27 10:37 page.html
compress로 압축된 파일은 반드시 uncompress로 압축해제를 해야합니다.
uncompress는 파일이 .Z로 끝나는 것만을 찾아서 압축해제를 해줍니다.
유닉스환경에서 사용되는 압축유틸리티중 가장 많이 사용하는 유틸리티입니다. 압축을 하고나면 compress는 파일의 끝에 .Z를 붙여주지만 gzip은 .gz를 붙여줍니다.
사용하는 방법은 다음과 같습니다.
압축할 때: gzip 압축할파일명
압축풀 때: gzip -d 압축된 파일명
또는
gunzip 압축된 파일명
[sspark@nice dat]$ls -l
total 40
-rw-rw-r-- 1 sspark sspark 40960 Jan 27 11:00 myhome.tar
[sspark@nice dat]$
[sspark@nice dat]$ gzip myhome.tar
[sspark@nice dat]$
[sspark@nice dat]$ ls -l
total 8
-rw-rw-r-- 1 sspark sspark 4223 Jan 27 11:00 myhome.tar.gz
gzip으로 압축을 할 때에는 거의 대부분 tar로 묶여진 파일을 다시 압축을 할 때 사용하게 됩니다.
위의 예에서 보시는 바와 같이 myhome.tar라는 tar로 묶여진 파일을 gzip으로 압축을 하게되었을 때의 용량을 비교해 보십시오.
거의 10배의 압축효율이 있음을 알 수 있습니다.
이 놀라운 압축효율 때문에 compress보다는 gzip을 많이 사용하게 된 것입니다.
또한 압축이 끝난후에는 파일의 끝에 .gz라는 것을 붙여주게되며 gzip으로 압축된 것임을 표시하게 됩니다.
이번에는 압축된 파일을 다시 압축해제해 보도록 하겠습니다.
[sspark@nice dat]$gzip -d myhome.tar.gz
[sspark@nice dat]$
[sspark@nice dat]$ls -l
total 40
-rw-rw-r-- 1 sspark sspark 40960 Jan 27 11:00 myhome.tar
이 예에서 보시는 바와같이 gzip으로 압축된 파일(*.gz)은 "gzip -d"을 사용하여 풀어주시든지 아니면 옵션없이 gunzip을 사용하시면 됩니다.
tar와 gzip을 동시에 할 수 있는 방법이 있으며 이는 tar의 옵션으로 다음과 같이 사용하실 수 있습니다.
이런작업을 하시려면 원래 사용하시던 tar의 옵션에 z라는 옵션을 추가해서 사용하시면 됩니다.
즉, 다음과 같은 사용하시면 됩니다.
묶고 압축할 때 :$ tar cvfz 압축파일.tar.gz 압축대상파일 및 디렉토리
압축해제와 묶음풀 때 : $ tar xvfz 압축파일.tar.gz
[sspark@nice dat]$ls -l
total 44
-rw-r--r-- 1 sspark sspark 5847 Jan 27 10:37 browser.html
-rw-r--r-- 1 sspark sspark 5879 Jan 27 10:37 host.html
-rw-r--r-- 1 sspark sspark 8295 Jan 27 10:37 hour.html
-rw-r--r-- 1 sspark sspark 858 Dec 7 04:02 log.range
-rw-r--r-- 1 sspark sspark 10733 Jan 27 10:37 page.html
[sspark@nice dat]$
[sspark@nice dat]$ tar cvfz myhome.tar.gz *
browser.html
host.html
hour.html
log.range
page.html
[sspark@nice dat]$
[sspark@nice dat]$ ls -l
total 52
-rw-r--r-- 1 sspark sspark 5847 Jan 27 10:37 browser.html
-rw-r--r-- 1 sspark sspark 5879 Jan 27 10:37 host.html
-rw-r--r-- 1 sspark sspark 8295 Jan 27 10:37 hour.html
-rw-r--r-- 1 sspark sspark 858 Dec 7 04:02 log.range
-rw-rw-r-- 1 sspark sspark 4212 Jan 27 11:21 myhome.tar.gz
-rw-r--r-- 1 sspark sspark 10733 Jan 27 10:37 page.html
tar로 파일을 묶을 때에는 cvf라는 옵션을 사용합니다.
이때 묶음과 동시에 gzip으로 압축을 하려면 z라는 옵션을 함께사용하여 cvfz라는 옵션을 사용하시면 묶음과 동시에 압축까지 해주게 됩니다.
옵션의 편리함 때문에 요즘에는 이런 방법을 많이 사용하고 있습니다.
이번에는 압축된 myhome.tar.gz파일을 한번에 풀고 해제해주는 예를 들었습니다.
tar로 풀어줄 때에는 xvf라는 옵션을 사용합니다.
풀어줌과 동시에 압축해제까지 하려면 이 옵션과 함께 z라는 옵션을 함께 사용하여 xvfz라는 옵션을 사용하시면 됩니다.
[sspark@nice dat]$
[sspark@nice dat]$ tar xvfz myhome.tar.gz
browser.html
host.html
hour.html
log.range
page.html
bzip2라는 유틸리티는 gzip보다 압축효율이 좋아서 차세대 압축유틸리티로 좋은 평을 받고 있는 유틸리티입니다.
사용하는 방법은 gzip과 거의 유사하며 압축된 후의 파일 끝에 .bz2라고 붙여줍니다.
예를 들어보겠습니다.
[sspark@nice dat]$ ls -l
total 40
-rw-rw-r-- 1 sspark sspark 40960 Jan 27 11:34 myhome.tar
[sspark@nice dat]$
[sspark@nice dat]$ bzip2 myhome.tar
[sspark@nice dat]$
[sspark@nice dat]$ ls -l
total 8
-rw-rw-r-- 1 sspark sspark 4389 Jan 27 11:34 myhome.tar.bz2
위의 예는 myhome.tar로 묶여진 파일을 bzip2로 압축을 한 것입니다.
압축후에는 파일 끝에 .bz2라는 것이 붙게됩니다.
다음은 bzip2로 압축된 것을 해제한 예입니다.
[sspark@nice dat]$bunzip2 myhome.tar.bz2
[sspark@nice dat]$
[sspark@nice dat]$ ls -l
total 40
-rw-rw-r-- 1 sspark sspark 40960 Jan 27 11:34 myhome.tar
jar
1) 파일묶기
jar cvf swingme.jar include
include 디렉토리를 swingme.jar 로 묶는다.
jar cvf swingme.jar *.class *.java
확장자가 .class 모든파일과 .java 모든파일을 swingme.jar 로 묶는다.
jar cvf swingme.jar include WEB-INF
nclude 디렉토리와 WEB-INF 디렉토리를 swingme.jar 로 묶는다.
2) jar파일 풀기
jar xvf swingme.jar
swingme.jar 파일을 풀음