zip & tar

리눅스에서 많이 사용되는 압축 방법

  1. tar + xz
  2. zip
  3. tar + gz
  4. tar + bz2

압축률

zip < gz < bz2 < xz

압축률이 높을수록, 속도는 느리다

 

실습

구성

아래와 같이 환경 구성

work1, work2에 각각 1MB 파일을 생성한다

mkdir work1
cd work1
for ((i=0;i<1024;*1024/2;i++)) do echo A >> a.txt; done
du -sh a.txt

mkdir work2
cd work2
for ((i=0;i<1024*1024/2;i++)) do echo A >> b.txt; done
du -sh b.txt

'A'와 줄바꿈문자 '\n' 까지 더해서 2byte * 1024 * 1024  / 2번 반복해서 해당 파일들은 각각 1mb 가 된다.

압축 -  zip

work1 디렉토리로 이동한 뒤 a.txt를 압축해보자.

zip all1.zip a.txt

원본 파일이 남아있는 것을 확인할 수 있다.

 

all1.zip을 지우고 a.txt와 work2를 같이 압축해보자.

zip all2.zip ./*

 

압축 파일 내 work2 디렉토리가 비어있는 파일인 것을 확인할 수 있다

-r 옵션을 줘야 하부 디렉토리가 정상적으로 같이 압축된다

all2.zip을 지우고 

-r 옵션을 주고 a.txt와 work2를 같이 압축해보자.

zip -r all3.zip ./*

압축해제 - unzip

unzip [압축파일명] -d [압축풀 경로]

[압축풀 경로]에 해당 경로가 없으면 생성하고 압축해제한다.

unzip all3.zip -d ./newDirect

압축 -  gzip, xz

gzip과 xz는 리눅스의 단일 파일 압축 방식이다.

원본 파일이 압축 파일로 변경된다 (원본 파일이 사라진다)

압축 성능 xz > gzip

gzip a.txt
xz b.txt

압축해제 - gunzip, xz -d

gunzip a.txt.gz
xz -d b.txt.xz

파일아카이브 유틸리티 - tar 

파일을 하나로 합칠 수 있다.

파일을 하나로 합치는 것뿐 압축을 하는 것은 아니다.

원본이 남아있다.

tar -cvf ab.tar a.txt b.txt

tar -cvf [파일명.tar] [파일1] [파일2] ...

  • -c : 하나로 모아서 새파일 생성 (create)
  • -f : 파일 이름을 지정 (file)
  • -v : 진행 상황을 보여줌  (verbose)
  • 원본이 남음
tar -xvf ab.tar -C ./ab/

tar -xvf [파일명.tar] -C [압축 풀 디렉토리 경로]

  • -x : tar 해제 (extract)
  • -C : 경로 지정 (change directory)
  • tar는 자동으로 디렉토리를 만들어주는 기능이 없어서 해당 디렉토리를 만들어야 함
  • 원본이 남음

핵심 - tar + xz

tar -Jcvf [파일명.tar.xz] [파일1] [파일2] ...

  • -J : XZ 압축 방식을 사용하도록 지정하는 옵션
tar -Jcvf ab.tar.xz a.txt b.txt

tar -Jxvf [파일명.tar.xz] -C [디렉토리]

tar -Jxcf ab.tar.xz -C ./ab

'Linux > tips' 카테고리의 다른 글

아카이브 변경하기  (0) 2024.12.11
Vim 설치, 단축키, vimrc  (0) 2024.12.10
bash shell script - 명령어 정리  (0) 2024.12.10

+ Recent posts