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

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

관련 글

지식 공유3분 읽기

[Linux] Ubuntu 24.04 -> Rocky 10 마이그레이션

개요 기존 홈서버에서 운영 중인 Ubuntu 24.04 서버의 모든 서비스( Docker , Gatsby , 데이터 등등)를 새로운 Rocky 서버로 누락 없이 이관하기 위한 과정을 기록해보려고 합니다. 사전 준비 작업 전에, 양쪽...

리눅스
지식 공유3분 읽기

[Linux] 테스트 서버 디스크 장애 이슈

개요 OS : Rocky 8.10 디스크 구성 /dev/sda : 메인 디스크 /dev/sdb : 백업 디스크 상황 평소에 서버 로그에 READ sda .... , swap 관련 메시지가 간간히 보였음. 어느 날 I/O 관련 로그가...

리눅스