본문 바로가기

리눅스

4. Archive & 압축

0. 목차

 1. Archive

  1.1. 정의

  1.2. 명령어

  1.3. 사용법

 2. 압축

  2.1. zip

  2.2. gzip

  2.3. bzip2

  2.4. xz

 3. 아카이브 & 압축

  3.1. 아카이브와 압축 동시 사용

  3.2. 옵션과 확장자 일치

---------------------------------------------------------------------------------------------------------------------------------

 

1. Archive

  1.1. 정의 

    - : Backup이나 압축을 위해서 여러개의 파일이나 디렉토리를 하나의 파일로 만드는 작업

 

  1.2. 탄생

    - Tape Drive 시절 여러 곳에 존재하는 파일이나 디렉토리를 한 파일로 관리

 

  1.3. 명령어

    - tar : 아카이브하기 위한 기본 명령어

    - -c  : Archive 파일 생성 ( 필수옵션 )

    - -x : Archive 파일 해제 ( 필수 옵션 )

    - -v(view) : 작업 진행 과정 확인 (공통옵션, 필수 X)

    - -f : 파일이름 지정 ( 필수 옵션 )

    - -t : 해제하지 않고 아카이브 파일 확인

    - -r : 기존 아카이브 파일 추가

    - -u : 기존 아카이브 파일에 업그레이드 된 파일 추가     

   

  1.4. 사용법

    - 아카이브생성 : #tar cvf 아카이브파일이름 파일명1 파일명2 파일명3 ...

    - 아카이프해제 : # tar xvf 아카이브파일이름

       > cvf와 xvf를 이용하여 작업과정을 확인하며 아카이브를 생성하고 해제하였다.

          새로운 파일 ab.tar이 생성되는 것을 볼 수 있고, 아카이브를 풀었을 때 해당 파일이 재생성 되었다.

cvf와 xvf 를 사용하여 ab.tar 생성 및 해제

     > cf 옵션을 사용함으로써 진행과정을 확인 불가

cf를 이용하여 ab.tar 생성

  - 아카이브 확인 : #tar tvf 아카이브파일이름

    > tvf를 이용하여 아카이브를 해제하지않고 ab.tar 아카이브의 내용물을 확인 가능.

tvf 옵션으로 ab.tar 내용 확인

  - 아카이브 파일 추가 : #tar rvf 아카이브파일이름 파일명1  -> 파일명1을 아카이브파일에 추가

    > rvf 옵션을 사용하여 ab.tar에 c.txt를 추가

rvf 옵션으로 내용 추가

  - 아카이브 파일 업데이트 : #tar uvf 아카이브파일이름 파일명1 -> 파일명1을 아카이브 파일에 업데이트

    > uvf 옵션을 이용하여 ab.tar에 b.txt를 업데이트. 아카이브 확인 과정에서 같은 파일이 여러개 나오더라도

       해제하였을 때 제일 최신의 업데이트된 내용이 해제된다. 

       해제된 b.txt의 수정시간이 20:25로 최근에 수정된 파일임을 알 수 있다.

uvf를 이용한 업데이트

  - 다른 경로에 아카이브 해제 : # tar xvf 파일이름 -C 경로지정

    > 바로 위 사진을 참고하면 -C 옵션을 통해 ab.tar을 2단계 상위 디렉터리에 해제한 것을 볼 수 있다.

 

  - 아카이브파일 내용 삭제 : #tar --delete --file=아카이브파일 지울파일

명령어를 이용해서 a.txt와 b.txt 제거

 

2. 압축

2.1. zip

  - zip은 리눅스에 기본을 설치되어있지 않다.

  - 따라서 #yum install -y zip unzip을 이용하여 설치.

  - 압축 : zip 파일명.zip 파일명1 파일명2 파일명 ...

   ex) zip abc.zip a.txt b.txt c.txt 명령어를 실행하면 abc.zip 파일이 생성.

 

  - 해제 : unzip 파일명.zip

  > 파일 압축이 잘 되는지 확인하기 위해 기존 파일을 제거한 후 unzip을 이용하여 압축 해제.

기존 파일이 재생성 되는 것을 볼 수 있다.

 

2.2. gzip

  - 압축 : # gzip 파일명 : gzip 파일명 -> 파일명.gz

gzip을 통해 ab.tar을 ab.tar.gz로 압축

             # gzip -1~9( 숫자가 클수록 압축률이 높다, 속도는 느리다 ) 파일명

숫자를 이용해 압축률을 높임

  - 해제 : # gunzip 파일명.gz

gunzip을 통해 ab.tar.gz 해제

             # gzip -d 파일명.gz 

gzip에 -d 옵션을 통해 압축 해제

 

2.3. bzip2

  - bzip2은 리눅스에 기본을 설치되어있지 않다.

  - 따라서 #yum install -y bzip2을 이용하여 설치.

  - 압축 :  # bzip2 파일명 : bzip2 ab.tar -> ab.tar.bz2

bzip2을 통해 ab.tar을 ab.tar.bz2로 압축

              # bzip2 -1~9 파일명

숫자를 통한 압축률 조절

  - 해제 :  # bunzip2 파일명.bz2

bunzip2을 통해 ab.tar.bz2 해제

             # bzip2 -d 파일명.bz2

bzip2에 -d 옵션을 통해 압축 해제

 

2.4. xz

  - 압축 : # xz 파일명

xz을 통해 ab.tar을 ab.tar.xz로 압축

             # xz -1~9 파일명

숫자를 통한 압축률 조절

  - 해제 : # unxz 파일명.xz

unxz을 통해 ab.tar.xz 해제

             # xz -d 파일명.xz

xz을 통해 -d 옵션을 통해 압축 해제

 

3. 아카이브 & 압축

3.1. tar 옵션+z, j, J 

  - 옵션 뒤에 압축 형식에 맞는 옵션을 통해 아카이브와 압축을 동시에 진행.

 

3.1.1 -z 

  - z : gz 확장자  ex) # cvfz abc.tar.gz a.txt b.txt c.txt

-z 옵션을 이용하여 아카이브와 압축 및 해제를 동시 실행

3.1.2 -j

  -j : bz2 확장자  ex) # tar cvfj abc.tar.bz2 a.txt b.txt c.txt

-z 옵션을 이용하여 아카이브와 압축 및 해제를 동시 실행

 

 

3.1.3 -J

  -J : xz 확장자    ex) # tar cvfJ abc.tar.xz a.txt b.txt c.txt

-J 옵션을 이용하여 아카이브와 압축 및 해제를 동시 실행

 

3.2. 옵션과 확장자 일치

  - 옵션과 확장자를 틀리게 해도 파일은 생성됨. 단 압축 및 아카이브 해제 시 STDIN Error

  - 확장명과 다른 옵션을 입력해서 압축 및 아카이브 해제 가능.

  - 파일명은 상관없이 압축 시 사용한 옵션을 사용하면 해제가 가능.

 

                      > 아래 화면은 cvfz 명령어로 bz2 파일을 생성.

                      > 파일명만 보고 xvfj 명령어로 해제하려고 하면 불가.

                      > 압축 시 사용한 z를 사용하여 해제하면 압축 해제 성공.

 옵션과 확장자 일치 다름