본문 바로가기
Linux 2급

리눅스 파일 압축, 압축 풀기, 아카이브 생성, 해제 (tar, gzip, bzip2, xz)

by 방뭉밍봉 2023. 11. 2.

아카이브란 데이터를 모아서 묶는 것.

ex) 여러 가지 책 들을 손에 따로 들고 다니는 것이 아닌 가방에 넣어서 쉽게 들고 다니는 것

압축은 데이터를 눌러서 만드는 것.

ex) 풍선 -> 풍선을 불기 전과 후는 관리하기도 다르고 무게도 다름 (무게도 달랐던가..?)

★보통 아카이브로 묶은 후에 압축★

★tar 사용 후 > gzip,bzip2,xz 압축★

리눅스에서는 보통 3가지 압축 소프트웨어가 있다.

1.gzip (기본 압축 소프트웨어)

#>gzip [option] [path]

-[num] 압축 레벨 지정 ( 1( 압축 속도↑, 압축률↓ ) ~ 9(압축 속도↓, 압축률↑) )

-d 압축 해제 (.gz)

#>gunzip [path]

gzip의 압축 해제 명령어 #> gzip -d 와 같은 역할

 

gzip 을 이용하여 /test/tartest 압축 용량이 10240에서 162로 줄은 것을 확인할 수 있음.

2.bzip2 (gzip보다 압축률이 좋지만 gzip보다 속도 ↓)

#>bzip2 [option] [path]

-[num] 압축 레벨 지정 ( 1( 압축 속도↑, 압축률↓ ) ~ 9(압축 속도↓, 압축률↑) )

-d 압축 해제 (.bz2)

#>bunzip2 [path]

bzip2의 압축 해제 명령어 #> bunzip2 -d 와 같은 역할

gzip과 똑같이 사용

3.xz (압축률이 가장 좋지만 속도 ↓ )

#>xz [option] [path]

-d 압축 해제 (.xz)

gzip과 똑같이 사용

리눅스에서 명령어는

tar -> 파일 또는 폴더 아카이브 하기.

> tar로 묶은 것들을 압축하는 게 가장 보편적이고 많이 쓰임

ex) tar cvf /test/tartest /test/file1 /test/file2 /test/file3

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

1 2 3 4

1) tar 명령어

2) 보통 xvf cvf tvf rvf 등으로 vf는 필수적으로 붙으며 제일 앞에 옵션만 바꾸어주면서 사용 -c 옵션은 아카이브 생성

3) 아카이브 지정 디렉터리와 이름

4) 아카이브로 묶을 파일, 디렉터리들

이후 묶은 아카이브를 압축

ex) gzip /test/tartest

아카이브 (tar)

여러 가지 파일들을 한곳으로 모아주는 역할

tar [option]

-A, --catenate : 아카이브에 tar 파일을 추가한다.

-c, --create : 새로운 아카이브 파일을 만든다.

-C, --directory DIR : 대상 디렉터리(DIR)를 지정한다.

-d, --diff, --compare : 아카이브와 파일 시스템의 차이를 비교한다.

-f, --file=ARCHIVE : 아카이브 이름(ARCHIVE)을 지정한다.

-j -I --bzip : bzip2를 이용해 압축한다.

-M, --multi-volume : 멀티 볼륨 아카이브를 생성, 해제, 출력한다.

-r, --append : 아카이브의 끝에 파일을 추가한다.

-t, --list : 아카이브 목록을 출력한다.

-u, --update : 아카이브의 목록 중 기존의 파일에서 업데이트된 파일만 추가한다.

-v, --verbose : 상세한 정보를 출력한다.

-w, --interactive : 모든 행동에 사용자의 확인을 요구한다.

-x, --extract, --get : 아카이브에서 파일을 푼다.

-z --gzip, --ungzip : gzip으로 압축한다. ungzip으로 압축을 해제한다.

1. 아카이브 생성

#> tar cvf [tar_path] [path]

c 아카이브 생성

v 작업 과정 (고정) 이거 두 개는

f 파일 (고정) 고정이라고 생각하시면 편합니다.

(필수는 아니에요)

ex) tar -cvf /test/tartest /test/file1 /test/file2 /test/file3

file1 file2 file3 이 /test/tartest/라고 /test에 아카이브 생성

2. 아카이브 확인

#>tar tvf [tar_path] [path] ...

#> tar tvf [path] 정보를 입력하니 tartest의 목록들을 보여줌

3. 아카이브 해제

#>tar xvf [tar_path] -C [path]

-x 아카이브 해제

-C 뒤에 path 정보를 입력하면 해당 path에 아카이브 해제

-C 옵션 없이 하면 현재 디렉터리에 아카이브 해제

4. 아카이브에 파일 추가

#>tar rvf [tar_path] [path ...]

-r 파일 추가

tar -cvf로 file1,2,3을 묶고 tar -tvf로 확인한 결과 file1,2,3 이 있다

여기서 tar -rvf -r 옵션을 넣고 file4를 추가하면 file4를 포함하여 아카이브가 생성된 것을 확인할 수가 있다.

5. 아카이브 & 압축을 동시에

아카이브&압축 아카이브&압축 해제

gzip(z) cvfz xvfz

bzip2(j) cvfj xvfj

xz(J) cvfJ xvfJ