[시스템] tar 와 gzip 사용하기 -아랑

5. 파일을 묶고 압축하기

리눅스 시스템 관리자가 반드시 숙지하고 있어야 할 기술중 하나가 파일을

묶고, 압축하는 기술이다.  보다 효율적인 안정된 시스템 관리를 위해서는

파일이나 디렉토리를 이동하거나 백업하기 위해 파일의 속성과 디렉토리

구조들을 유지한체 이동하게 하는데 필요한 tar 나 대용량의 파일을 압축

하는 gzip 등의 명령어를 자유자재로 다루어야 할것이다.

[ gzip 사용하기 ]

[root@zzang911 alang]# ls -l tttt

-rw-rw-r–    1 alang    alang        1228  7월 25 13:58 tttt

[root@zzang911 alang]# gzip tttt

[root@zzang911 alang]# ls -l tttt*

-rw-rw-r–    1 alang    alang         747  7월 25 13:58 tttt.gz

위에서 보는 바와 같이 gzip file_name 적으면 file_name.gz 란 압축파일이 만들어

진다. tttt 파일을 압축시켜서 tttt.gz 란 파일을 만들고 tttt 파일을 지워버리게

된다.

하나 유의해야 할점이 있다. gzip 은 zip 처럼 여러개의 파일을 하나로 묶어서 압축

하지 않고 파일별로 gz 란 확장자를 붙이며 압축해 버린다. 그렇기 때문에 파일을

묶는 tar 와 같이 사용해야 한다.

gzip 파일로 묶인것을 확인하기 위해서는 -l 옵션을 사용한다.

[root@zzang911 alang]# gzip -l tttt

         compressed        uncompressed  ratio uncompressed_name

                747                1228  41.0% tttt

그리고 압축을 풀기 위해서는 gunzip 이나 gzip -d 를 사용하여 압축을 해제할수가

있다. 그리고 압축을 해제하면 압축된 파일은 제거 되어 진다.

이밖에 gzip 은 표준출력을 바로 압축할수도 있다.

# ls -alR $HOME | gzip > home.gz

이와 같이 하면 $HOME 디렉토리 하위 파일을 home.gz 으로 압축하게 된다.

이밖에 다른 옵션으로 -1 ~ -9 까지의 옵션이 있는데 이는 압축률을 정하는 옵션

이다. gzip -1 file_name 하면 압축속도는 빠르나…압축률은 낮다. 그리고 -9

옵션을 사용하면 압축속도는 느리지만 압축률은 상당히 높게 되어진다.

[ tar 사용하기 ]

tar 는 파일의 허가권이나 소유권등의 정보를 유지하면서 많은 파일들을 하나의 파일로

묶어 주는 기능을 가진 아카이브 유틸리티이다. 예전엔 여러파일을 하나로 묶어 테잎에

백업을 받기 위한 도구로 사용되어졌지만 지금은 여기에 국한되는 것이 아니라 다양한

기능들을 제공한다. 다음 형식으로 사용되어진다.

tar [옵션] [묶은 파일명] [묶을 파일들]

옵션에는

c : 새로운 아카이브의 생성

x : 아카이브로 부터 파일 추출

t : 아카이브에 담긴 내용을 나열

r : 아카이브의 마지막 부분에 파일 추가

u : 아카이브에 있는 기존 파일보다 새로운 파일로 업데이트

d : 아카이브에 있는 파일과 비교

v : 아카이브 생성이나 추출시 과정을 보여준다.

k : 아카이브를 추출시 기존에 같은 파일이 있으면 그 파일을 보존한다.

디들중 c,x,v,t 를 제외한 나머지는 자주 사용되지 않는다.

파일을 묶고 푸는 대표적인 예를 하나씩 들어본다.

# tar cvf file.tar /home/file

/home/file 이란 디렉토리에 있는 모든 파일과 디렉토리를 그대로 file.tar

란 파일로 묶어버린다.

# tar x

# tar cvf bin.tar /bin

로 파일을 묶은후 bin.tar 로 풀때는 다음과 같은 경고 메세지가 출력하게 된다.

tar: Removing leading / from absolute path names in the archive.

이는 만약에 있을 위험을 방지하기 위해서 나타나는 현상이다.

다시말해 bin.tar 를 풀었을때 압축 디렉토리와 같이 /bin 에다가 압축이 풀리면

시스템에 이상이 생길지도 모른다. 그래서 tar 로 파일을 풀때는 현재 디렉토리를

기준으로 하여 파일이 풀리게 되어져 있다. 이점을 유의하길 바란다.

[ tar 와 gzip 같이 사용하기 ]

위에서 본바와 같이 특정 디렉토리나 파일들을 tar 로 묶은후 gzip 을 사용하여

압축하는 방식이다. 과정을 풀어서 본다면 다음과 같다.

# tar cvf file_name.tar /home

# gzip -9 file_name.tar

이와 같이 하면 된다. 하지만 이방법은 번거로울뿐아니라 gzip 으로 압축되기전까지

tar 파일을 보관할 충분한 디스크 공간이 확보되어 있어야 한다.

# tar cvf file_name.tar /home | gzip -9 > file_name.tar.gz

이와 같이 하면 된다.

GNU tar 버젼에서는 gzip 기능을 포함하여 사용할수 있도록 되어져 있다.

# tar czvf file_name.tar.gz /home

위와 같이 z 옵션을 사용하면 된다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

1 Response

  1. After all, what a great site and informative posts, I will upload inbound link – bookmark this web site? Regards, Reader.

페이스북/트위트/구글 계정으로 댓글 가능합니다.