관리 메뉴

IT창고

리눅스 압축과 아카이브 본문

서버운영/Linux

리눅스 압축과 아카이브

방구석여포 2017. 9. 6. 00:42

리눅스에는 압축유틸리티가 있습니다. 가장 오래된 gzip와 가장 최신의 xz와 같이 리눅스의 파일을 압축할수있는 유틸리티인데 압축하는법과 아카이브를 쓰는법 그리고 아카이브압축에 대해 알아보겠습니다.


gzip 압축유틸리티에 대해 먼저 알아보겠습니다. gzip은 가장 처음에 나온 압축유틸로 사용방법은 매우 간단합니다.

#gzip [파일명] 으로 압축을 하게된다면 [파일명].gz의 압축파일이 생깁니다. gzip에는 옵션이 있는데 -1 ~ -9 까지 있으며 gzip -1은 가장 압축하는 시간이 빠르며 압축률이 낮고 gzip -9는 가장 압축하는시간이 느리며 압축률이 가장 높습니다.

옵션을 설정하지 않고 사용하면 기본값 -6으로 설정됩니다.

ex) gzip -9 파일명 

만약 실습해본다면 적당히 용량이 큰 파일중 cp /usr/lib/locale/locale-archive / 로 최상위디렉토리나 다른 디렉토리에서 실험해볼수있습니다.

압축을 해제하는 법은 두 가지로 gunzip [파일명].gz 혹은 gzip -d 파일명.gz 를 사용해줍니다. 또한 압축이나 압축해제는 인자를 여러개 사용할수있습니다. 

ex) gzip file1 file2 file3 , gzip file*  , gunzip file*.gz  ,  gzip -d file1 file2 이 방법은 bzip2, xz 압축 유틸리티에서도 동일합니다.


bzip2 압축유틸리티는 gzip다음으로 나온 압축 유틸로서 gzip보다 압축률이 조금더 좋습니다 사용방법은 bzip [파일명]이고 압축 결과는 [파일명].bz2 입니다. 압축 해제하는 방법은 bunzip2 [파일명].bz2 와 bzip2 -d [파일명].bz2 가 있습니다.


xz 압축유틸리티는 bzip2다음으로 나온 압축유틸로서 가장 압축률이 좋지만 압축에 시간이 걸립니다.

만약 xz가 설치되어 있지않다면 yum -y install xz 로 xz패키지를 설치해줍니다. xz압축을 사용하는 방법은 xz [파일명] 이고 압축 결과로 [파일명].xz 가 됩니다. 압축 해제하는 방법은 xz -d [파일명].xz 혹은 unxz [파일명].xz 입니다. 


위의 압축유틸리티를 표로 정리하자면 아래의 표와 같습니다.

 압축명령어

해제명령어 

확장자 

 gzip

gunzip 

.gz 

bzip2 

bunzip2 

.bz2 

xz 

unxz 

.xz 


아카이브(Archive)에 대해 알아보겠습니다. 아카이브는 파일을 묶는 역활을 합니다. 단 묶을 뿐이고 압축은 하지 않습니다.

아카이브를 사용하기 위한 명령어로 tar(Tape Archive)가 있는데 여러개의 지정된 파일들을 아카이브(묶음)로 만들고 아카이브 파일에는 확장자 .tar이 붙습니다.

옵션으로는 아래의 표로 정리했습니다. 아카이브 옵션을 사용할때는 '-' 을 사용하지 않습니다. 

 c

아카이브를 생성합니다. 

 x

아카이브를 해제합니다. 

 v

 진행과정을 출력합니다.

 f

 tar아카이브 파일을 인자로 사용합니다.

 r

 기존 아카이브 파일에 새로운 파일을 추가해 줍니다.

 t

 아카이브 파일 안에 내용을 확인합니다.

1. 아카이브 생성하기 (cvf 옵션사용)

사용방법은 tar cvf [아카이브명].tar [파일] 입니다 명령어 인자로 아카이브 파일을 사용하기 위해서는 f옵션을 사용해야 합니다. ex) tar cvf fileAAA.tar file1 file2 file3


2. 아카이브 해제하기 (xvf옵션사용)

사용방법은 tar xvf [파일명].tar 로 아카이브안에 있는 파일을 풀어주며 압축파일같이 아카이브파일은 사라지지 않습니다.

3. 아카이브 파일에 새로운 파일 추가하기 (rvf옵션사용)

4. 아카이브 파일내용확인하기 (tvf옵션사용)

5. 특정 디렉토리에 아카이브 해제하기 (-C 옵션 사용)

특별하기 -C옵션은 현재 디렉토리에 있는 아카이브를 다른 디렉토리에서 아카이브파일을 해제해 줍니다.

ex) tar xvf file.tar -C /gsk


아카이브압축에 대해 알아보겠습니다. 아카이브압축은 아카이브를 생성해서 만든 아카이브파일을 gzip, bzip2, xz같은 압축유틸리티로 압축하는걸 뜻합니다. 만약 gzip으로 아카이브압축을 하게된다면 [파일명].tar.gz 같은 압축파일이 나옵니다.

아카이브생성과 동시에 바로 압축하는 방법에 대해 알아보겠습니다. 

tar명령어 압축에 대한 명령어 옵션이 있습니다. gzip -> z , bzip2 -> j , xz ->J 로 각 압축유틸리티마다 정해진 옵션을 사용해주면 됩니다. ex) gzip으로 아카이브압축을 하는 경우 tar cvfz fileAAA.tar.gz file1 file2 file3 

반대로 아카이브압축을 해제하면서 원본파일까지 해제하는 법 입니다. -> ex) tar xvfz fileAAA.tar.gz 

아카이브압축을 사용하면다면 명령어를 두번 사용하지 않고 한번에 모두 사용할수있게됩니다.

'서버운영 > Linux' 카테고리의 다른 글

리눅스 부팅프로세스  (0) 2017.09.08
리눅스 find 명령어 활용  (0) 2017.09.07
리눅스 파일시스템 쿼터  (0) 2017.09.05
리눅스 RAID구성  (0) 2017.08.31
리눅스 파일시스템  (0) 2017.08.30
Comments