공부

10. Linux Archive & 압축 명령어

비구름 2022. 2. 22. 11:07
반응형

이번 포스팅에서는  Archive & 압축 명령어를 알아보겠습니다.

1. Archive

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

 1.2. 탄생 : 예전 Tape Drive 시절 여러 곳에 혼재하는 파일이나 디렉토리를 한 파일로 관리하기 위해 탄생

 1.3. 명령어

  1.3.1. tar (Tape Archive)

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

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

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

  1.3.5. -v(view) : 작업 진행 과정 확인 (필수옵션 x)

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

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

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

  1.3.9 : tar delete file=ab.tar a.txt : ab.tar에 속한 a.txt 삭제

 1.4. 사용법

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

  1.4.2. 아카이브 해제 # tar xvf 아카이브파일이름

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

1.5 아카이브 실습

1.5.1. 우선 실습하기에 앞서 아카이브와 압축에 활용할 디렉토리와 파일을 만들어 줍니다.

       저는 /1/2/3 디렉토리로 이동하여 파일을 만들었습니다.

1.5.2. -c 명령어를 통해 tar 파일을 만들고 -x 명령어를 통해 tar파일을 해제합니다.

        -f 명령어를 이용해 파일 이름도 지정해야 합니다.

-v 명령어를 통해 작업 진행 과정을 확인할 수 있습니다.

1.5.3. -t 명령어를 사용해 ab.tar에 속한 파일을 확인합니다.

1.5.4. -r 명령어를 사용해 ab.tar에 c.txt를 추가합니다.

1.5.5. cat >> 명령어를 사용하여 c.txt 파일의 끝에 글자를 추가합니다.

       -u 명령어를 사용하여 ab.tar에 있던 c.txt를 글자가 추가된 c.txt로 업그레이드 합니다.

1.5.6. tar —delete —file=ab.tar a.txt 명령어로 ab.tar에 속한 a.txt 삭제합니다.

2. 압축

 2.1. zip

  2.1.1. # yum install y zip unzip 으로 패키지 설치

  2.1.2. 압축

         # zip 파일명.zip 파일명1 파일명2 파일명3 ...

  2.1.3. 해제

         # unzip 파일명.zip

 2.2. gzip

  2.2.1. 압축

         # gzip 파일명 : gzip ab.tar -> ab.tar.gz

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

  2.2.2. 해제

         # gunzip 파일명.gz

         # gzip d 파일명.gz

  2.2.3. 내용 확인

         # gcat 파일명.gz

 2.3. bzip2

  2.3.1. # yum install y bzip2 으로 패키지 설치

  2.3.2. 압축

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

         # bzip2 1~9 파일명

  2.3.3. 해제

         # bunzip2 파일명.bz2

         # bzip2 d 파일명.bz2

  2.3.4. 내용 확인

         # bzcat 파일명.bz2

 2.4. xz

  2.4.1. 압축

         # xz 파일명

         # xz 1~9 파일명

  2.4.2. 해제

         # unxz 파일명.xz

         # xz d 파일명.xz

  2.4.3. 내용 확인

         # xcat 파일명.xz

2.5. 압축 실습

2.5.1. yum 명령어를 통해 zip unzip bzip2 패키지를 설치합니다.

2.5.2. zip 명령어를 통해 파일을 압축합니다.

       zcat 명령어를 통해 파일의 내용을 확인할 수 있습니다.

       unzip 명령어를 통해 압축을 해제합니다.

2.5.3. 아래와 같이 gzip 명령어를 통해 여러 파일을 압축하면 a.txt.gz b.txt.gz c.txt.gz와 같이 파일이 각자 압축됩니다.

압축된 파일들은 gunzip 명령어를 통해 해제합니다.

tar가 아닌 파일을 압축한 모습

2.5.4. tar 명령어를 통해 abc.tar파일을 먼저 만들고 gzip 파일로 압축하면 정상적으로 압축됩니다.

       unzip 명령어를 통해 해제할 수 있고 gzip -1~9를 통해 압축률을 설정할 수 있습니다.

2.5.5. bzip2 명령어를 통해 파일을 압축할 수 있고 bzip2 -1~9 명령어를 입력하면 압축률을 조정할 수 있습니다.

bunzip2 명령어와 bzip2 -d 명령어로 파일을 해제할 수 있습니다.

2.5.6. xz 명령어를 통해 파일을 압축할 수 있고 xz -1~9 명령어를 입력하면 압축률을 조정할 수 있습니다.

       unxz 명령어와 xz -d 명령어로 파일을 해제할 수 있습니다.

3. 아카이브 & 압축

 3.1. tar cvf 공통을 공통으로 사용

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

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

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

 3.2. 옵션과 확장자를 다르게 해도 파일은 생성됨. 단 압축 및 아카이브 해제 시 Error 발생

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

3.3. 아카이브 & 압축 실습

 3.3.1. tar cvfz 명령어로 아카이브를 만듦과 동시에 압축을 진행할 수 있습니다.(gz 파일로 압축)

        tar cvfj 명령어는 bz2 파일로 압축을 하고 tar cvfJ 명령어는 xz 파일로 압축합니다.

 3.3.2. tar cvfz 명령어를 사용했을 때 bz2라는 확장자로도 압축이 가능합니다. 하지만 tar xvfj 명령어로 파일을 해제 할 수 없고 처음 파일을 생성할 때 사용한 -z 명령어를 뒤에 붙여 압축을  해제 가능합니다.

반응형