Profile picture

[Linux] 압축(zip)과 아카이브

JaehyoJJAng2023년 05월 02일

Archive ?

  • 여러개의 파일을 하나의 파일로 묶는 방법
  • 압축은 원래 하나밖에 할 수 없음
  • 여러 개의 파일을 압축하기 위해선 아카이브화 해야함

tar

  • Type Archive
  • 아카이브 파일에는 확장자 .tar을 붙여서 사용함
    • archive-test.tar
  • TAPE 저장 장치에 데이터를 기록할 때 사용되는 형식

압축하는 방법

  • 여러개의 파일을 묶은 후(아카이브화), 아카이브 파일을 압축함(gz)
  • 원래의 압축은 파일 하나만의 용량을 줄여주는 기능임
  • 여러개는 동시에 압축이 불가능

옵션

옵션 설명
-c 아카이브 파일을 생성함
-x 아카이브 파일을 해제함
-v 진행 과정 출력
-f 아카이브 파일을 사용
-r 기존 아카이브 파일에 새로운 파일을 추가할 때
-t 아카이브내에 파일 목록 확인
-p 압축/압축해제 시 퍼미션 유지
-P 절대 경로를 유지하고 압축/압축 해제

압축 종류

  • (gzip , gunzip)
  • (bzip2, bunzip2)
  • xz

gzip [파일명]

  • -1: 압축속도가 가장 빠르며 압축율은 가장 낮음. 속도를 우선시 함
  • -9: 압축속도가 가장 느리며 압축율은 가장 높음. 파일의 용량이 크면 클수록 효율이 좋음
  • -6: 기본값

gzip 을 통해 압축하기

$ gzip file-1

# time 명령어를 통해 gzip을 실행하였을 때 걸리는 시간을 확인할 수 있음
$ time gzip file-1

real	0m0.001s
user	0m0.001s
sys	0m0.000s

bzip2

  • 압축률을 gzip과 비교했을 때 월등히 뛰어나다
$ bzip2 archive-test-tar

xz

  • 압축률을 비교하였을 때 gzip < bzip2 < xz 순이다
  • 용량이 클수록 압축률이 좋은 프로그램을 사용하는게 좋을 것이다
$ xz archive-test-tar

압축 해제

gunzip

  • gunzip [파일명].gz
  • .gz 확장자 압축 해제
# gunzip [파일명].gz
$ gunzip archive-test.tar.gz

bunzip2

  • bunzip2 [파일명].bz2
  • .bzip2 확장자 압축 해제
bunzip2 archive-test-tar.bz2

unxz

  • unxz [파일명].xz
  • .xz 확장자 압축 해제
$ unxz archive-test-tar.xz

Archive

아카이브 생성하기

  • tar -cvf {아카이브명.tar} [파일1] [파일2] [파일3] ...

$ tar -cvf files.tar file1 file2 file3

아카이브 해제하기

  • `tar -xvf {해제할아카이브명.tar}

아카이브 목록 확인

  • tar -tvf {아카이브명.tar}
$ tar -tvf testarchive.tar

특정 디렉토리에 아카이브 해제

  • tar -xvf {아카이브명.tar} -C {아카이브 해제할 경로}
$ tar -xvf test-archive.tar -C /tmp/archive

find로 파일 모으기

find 커맨드로 찾은 파일들을 archives.tar 파일로 묶기

$ find . -name "archive-test" 2>/dev/null -exec sh -c "tar -rvf archives.tar {}" \;

아카이브 파일 목록 확인해보기

$ tar -tvf archives.tar

-rw-rw-r-- ncloud/ncloud     0 2023-05-30 21:39 ./archive/archive-test6
-rw-rw-r-- ncloud/ncloud     0 2023-05-30 21:39 ./archive/archive-test9
-rw-rw-r-- ncloud/ncloud     0 2023-05-30 21:39 ./archive/archive-test1
-rw-rw-r-- ncloud/ncloud     0 2023-05-30 21:39 ./archive/archive-test10
-rw-rw-r-- ncloud/ncloud     0 2023-05-30 21:39 ./archive/archive-test3
-rw-rw-r-- ncloud/ncloud     0 2023-05-30 21:39 ./archive/archive-test7
-rw-rw-r-- ncloud/ncloud     0 2023-05-30 21:39 ./archive/archive-test8
-rw-rw-r-- ncloud/ncloud     0 2023-05-30 21:39 ./archive/archive-test4
-rw-rw-r-- ncloud/ncloud     0 2023-05-30 21:39 ./archive/archive-test2
-rw-rw-r-- ncloud/ncloud     0 2023-05-30 21:39 ./archive/archive-test5

Loading script...