4. tar 아카이브와 파일 압축

2022. 9. 11. 01:47Linux

아카이브란 여러 파일이나 디렉토리를 하나의 파일로 만드는 작업입니다.

 

하나로 모으는 이유는 이동, 공유, 저장이 더욱 간편해지기 때문입니다.

 

명령어 형식

tar [option] [file]

 

옵션 -

c 생성

v 과정확인

f 대상파일지정(필수옵션)

x 아카이브 풀기

t 아카이브 파일 내용 확인

r 기존 아카이브 파일에 파일 추가

u 기존 아카이브 파일에 파일 추가(update)

 

먼저 tar로 묶을 파일을 3개 만들어주겠습니다.

 

묶어주겠습니다.

# tar -cvf abc a b c

 

다음 원본 파일 a, b, c를 지워주겠습니다.

 

abc의 내용을 tvf 명령어로 확인해보겠습니다.

a, b, c가 잘 담겨져 있는 모습입니다.

 

abc에 새로운 파일을 d라고 이름지어 추가해 보겠습니다.

 

마지막으로 abc 파일을 풀어보겠습니다.

 

# tar -xvf abc

abc 안의 내용물들이 꺼내져 있는 것을 확인할 수 있습니다.


리눅스의 파일 압축기능에 대해서도 알아보겠습니다.

 

압축엔 zip, gzip, bzip2, xz 가 있습니다.

 

zip과 bzip2는 따로 설치를 해줘야 사용할 수 있습니다.


zip은 윈도우와 호환성 있고 아카이브로 미리 묶지 않아도 zip에서 묶어서 압축시킬 수 있습니다.

 

zip은 기본 패키지가 아니기 때문에 yum 을 통해 설치를 해주겠습니다.

 

# yum -y install zip

 

a, b, c를 zip으로 모아서 압축해보겠습니다.

# zip abc a b c

 

a, b, c를 삭제시킨 후 abc.zip을 압축해제 시켜보겠습니다.

 

압축해제 시키는 명령어 unzip도 추가로 설치를 해줘야 합니다.

 

#yum -y install unzip

 

# unzip abc.zip

 


다음으로 gzip을 사용해 보겠습니다.

 

abc.tar 아카이브 파일을 압축해보겠습니다.

 

# gzip abc.tar

 

용량이 10Kbyte에서 131byte로 줄어든것을 확인할 수 있습니다.

 

이제 압축을 해제시켜보겠습니다.

 

# gunzip abc.tar.gz 

또는

# gzip -d abc.tar.gz

 

압축을 해제시켜 용량이 다시 돌아왔습니다.


zip은 아카이브와 압축을 한번에 해주는데 반해 

gzip, bzip2, xz는 tar 수행 후에 압축을 실행시켜야 하는 번거로움이 있습니다.

 

이를 해결하기 위한 기능이 tar 아카이브에 존재합니다.

 

gzip

# tar cvfz 파일명.tar.gz 파일1 파일2 ...

 

bzip2

# tar cvfj 파일명.tar.bz2 파일1 파일2 ...

 

xz

# tar cvfJ 파일명.tar.xz 파일1 파일2 ...

 

아래는 cvfz 로 tar로 아카이브기능과 gzip으로 압축 기능을 한번에 수행한 모습입니다.


끝!