클라우드 아카이브

[압축] tar 과 gz의 차이 본문

OS 및 스토리지/파일시스템

[압축] tar 과 gz의 차이

Cloud Engineer 2021. 8. 28. 20:07
반응형

개요

리눅스를 다루다보면 정기적으로 운영체제 구성 또는 파일시스템을 백업할 일이 있다. 백업을 할 때 자주 사용하는 명령어인 tar과 gz에 대해 알아보자.

tar과 gz의 정의

tar의 풀네임은 Tape Archive로 디스크에 분산되어 있는 여러 개의 파일을 하나의 파일로 묶을 때 사용하는 소프트웨어 유틸리티이다. Tape라는 말에서 알 수 있듯이 과거에 물리적 테이프에 백업을 할 당시에 여러 개의 파일을 묶을 때 사용하던 방식이다. 즉 과거에 정기적으로 PTL 백업을 이행할 때 파일을 하나로 묶기 위해서 사용하는 명령어다.
아래는 2009년에 존재했던 게시물로 실제 PTL 방식으로 유닉스 운영체제 구성 또는 파일시스템을 백업할 때 사용했던 프로세스이다.

더보기

tar 테입백업 방법 (HP-UX)

# bdf (백업대상확인)
# cd /data2/lmis/lmis_backup/

# mt -f /dev/rmt/0mn offline (기존테입 꺼냄)
새 테입을 넣고

# tar -cvf /dev/rmt/0mn ./lmisuser.dmp
(현재디렉토리에 있는 ./lmisuser.dmp 파일을 테입장치에 tar압축하여 기록)

출처: https://love-zzang.tistory.com/entry/tartape [Zzang's Story]

gzip은 여러 개의 파일 및 디렉토리를 하나의 파일로 압축하기 위해 사용하는 소프트웨어 유틸리티로 GNU에서 처음 고안되었다. 과거에 compress라는 유틸리티를 통해 압축을 수행했으나, 압축률이 더 뛰어난 gzip이 등장하면서 점점 덜 사용하게 되었다. 현재는 gzip을 사용하여 압축한다. 다만 디스크에 분산된 여러 개의 파일을 하나로 묶는 기능이 없기 때문에 tar과 같이 사용한다.

tar과 gzip의 차이 (출처 : 위키)

실습 : 리눅스에서 특정 파일을 tar.gz로 압축하기

tar 명령어를 통해 tar 파일과 gz 파일로 나누어 파일의 메타 데이터 및 파일 크기를 살펴볼 것이다. 그리고 tar.gz 파일을 다시 압축 해제하는 작업을 수행할 것이다. 먼저 tar의 사용법을 보면, 아래와 같은 글을 볼 수 있다.

$ tar --help
tar(bsdtar): manipulate archive files First option must be a mode
specifier: -c Create -r Add/Replace -t List -u Update -x Extract
Common Options:
-b # 512-byte records per I/O block
-f <filename> Location of archive
-v Verbose
-w Interactive
....

 

자주 사용하는 명령어와 옵션

자주 사용하는 명령어에 대해 간략하게 살펴본 다음 옵션에 대해 알아보자.

# filelist, a, b 파일을 filelist.tar 파일로 묶기
$ tar -cvf filelist.tar filelist a b

# filelist a b 파일을 filelist.tar.gz으로 압축
$ tar -cvzf filelist.tar.gz filelist a b

# filelist.tar.gz 파일의 메타 데이터 조회
$ file filelist.tar.gz
filelist.tar.gz: gzip compressed data, last modified: Sat Aug 28 10:53:58 2021, 
from Unix, original size modulo 2^32 1794048

# file.tar.gz 파일 압축 해제
$ tar -xvf filelist.tar.gz 

# filelist 파일의 메타 데이터 조회
$ file filelist
filelist: ASCII text
옵션 설명 비고
-c -create : 지정된 파일을 하나의 파일로 묶음  
-v -verbosely : 압축 및 해제 과정을 장황하게 표시  
-z -z : 묶인(아카이브) 파일을 gzip/bzip2/xz/lzma 파일로 압축  
-f -f <filename> : 묶인(아카이브) 파일의 위치  
-x -extract : 압축 파일을 oritinal 파일로 압축 해제 filelist.tar.gz -> filelist

주의! -f는 반드시 옵션의 가장 마지막에 붙어야한다. 옵션을 사용할 때 항상 유의할 점은 왼쪽부터 오른쪽 방향으로 순차적으로 옵션이 적용된다. 이를 반드시 유의하자!

출처

'OS 및 스토리지 > 파일시스템' 카테고리의 다른 글

[파일시스템] 파일시스템의 개념  (0) 2021.08.23
Comments