[Linux/CentOS] 파일 압축과 파일 묶기
System/OS - Linux

[Linux/CentOS] 파일 압축과 파일 묶기

728x90

파일 압축

확장명: xz, bz2, gz, zip, Z 등

windows와 달리 파일의 압축과 파일 묶기가 나눠져있다. 데이터의 크기를 줄이기 위한 과정이다.


xz

# xz [옵션] [파일]

확장명이 xz인 파일을 압축하거나 풀어준다.

# unxz 파일이름

xz 확장명의 압축 파일의 압축을 해제한다.

= # xz -d

 

mode

-z + 파일 (compress) 파일 압축: 따로 명령관련 옵션을 지정해주지 않았을 때의 default(생략가능)  -d + 파일.xz (decompress) 압축 해제
-t + 파일(.xz) (test) 어떤 옵션들을 붙여 실행했을 때의 결과를 출력해주면서 테스트 >> 파일이 실제로 삭제되거나 압축되는 것은 아님 -l + 파일.xz (list) xz 압축 파일에 포함된 파일 목록과 압축률 등을 자세히 출력

※ 다른 옵션을 지정해주지 않고 파일이름만 전달해 압축을 실행하면 ( # xz 파일 ) 기존의 압축 전의 파일들은 삭제된다.

modifier

-k + 파일 (keep) 압축 후 기존 파일을 삭제하지 않고 그대로 둠 -f (--force)  
       

 


bzip2

확장명이 bz2인 파일을 압축하거나 풀어준다. (그 외의 다른 확장명의 파일들도 해제할 수 있다.)

# bzip2 파일이름

옵션

-d + 파일.bz2 (decompress) 압축파일을 해제해 일반 파일 "파일"로 만듦  -c (--stdout) 압축되거나 압축 해제된 파일을 표준출력으로 화면에 띄움
-z + 파일 (compress) 파일을 압축 -k (--keep) 압축 또는 압축 해제 후 기존 파일(압축 파일)을 삭제하지 않음
-v + 파일.bz2 파일의 압축된 정보 등 자세한 정보를 출력 -1 ~ -9 압축할 때의 블록의 크기를 지정
>> 해제할 때에는 영향을 주지 않음

 

bunzip2

확장명이 bz2인 파일들의 압축파일의 압축을 풀어준다.

= # bzip -d

 


gzip

확장명이 gz인 파일을 압축하거나 압축을 해제한다.

# gz [옵션] [S옵션] [파일]

옵션

-d (decompress) 압축파일을 해제해 일반 파일 "파일"로 만듦  -r 하위 디렉터리까지 모두 압축
-l 압축파일 내부의 세부정보들을 출력 -v 압축하거나 압축을 해제할 때의 과정을 세부적으로 출력

 

gunzip

확장명이 gz인 파일의 압축을 풀어준다.

 

실제로는 gz 확장자 이외의 다른 타입의 파일들의 압축도 해제할 수 있다. gzip, zip, compress, compress -H로 생성된 압축파일들을 해제할 수 있다고 한다.

 


zip

windows 용과 호환되는 확장명 zip인 파일들을 압축하거나 풀어준다.

# zip [옵션] 생성할파일이름.zip 압축할파일이름

 

 

unzip

windows용과 호환되는 zip으로 묶은 압축파일을 해제해준다.

# unzip 압축파일이름.zip

dd

 


compress

확장명이 Z인 파일로 압축한다.

 


파일 묶기

windows의 압축 프로그램에서는 '파일 압축' 과 '파일 묶기'를 함께 하지만 리눅스 상에서는 별개로 나눠져있다. 

여러 개의 파일을 묶어 하나의 파일처럼 만들거나 묶인 파일을 풀어준다.

 

tar

주로 tar로 만들어진 파일들은 확장명 tar를 가진다. 

하지만 xz, bzip2, gzip 등과 연동하여 압축과 묶기를 동시에 진행했을 경우 .tar.xz / .tar.bz2 / .tar.gz 의 확장명을 갖게 된다.

# tar [동작][-f 옵션] [위치] [묶음 파일.tar(.확장명)] [묶을 파일]

f (필수) 묶음 파일의 이름을 지정
생략 시, 테이프로 보내짐
v (visual) 파일이 묶이거나 풀리는 과정 출력
생략 가능

동작

c 새로운 묶음 생성 x 묶인 파일을 풀어줌
t 묶음을 풀기 전 묶인 경로를 보여줌 C 묶음을 풀 때 지정된 디렉터리에 묶음을 풂
지정하지 않으면 묶을 때와 동일한 디렉터리에 묶음이 풀림

압축 옵션

J (tar + xz) xz 명령과 연동해 파일을 묶고 압축 j (tar + bzip2) bzip2 명령과 연동해 파일을 묶고 압축
z (tar + gzip) gzip 명령과 연동해 파일을 묶고 압축    

 

예시 - c (파일묶기)

# tar cvf my.tar linktest

>> 디렉터리 linktest를 my.tar라는 이름으로 디렉터리 하위 파일들을 묶었다.

 

# tar cvf test.tar test.txt test1.txt

>> test.txt와 test1.txt 파일을 묶어 test.tar파일을 만들었다.

 

# tar cvf my.tar tartest/example

 

# tar cvfJ my.tar.xz tartest/example

>> /tartest/example의 파일들을 묶고 xz 로 압축한다.

 

# tar cvfz my.tar.gz tartest/example

>> tartest/example의 파일들을 묶고 gzip으로 압축한다.

# tar cvfj mytar.bz2 tartest/example

>>  tartest/example의 파일들을 묶고 bzip2으로 압축한다.

 

예시 - t (파일 확인)

원본 파일( tartest/example ) 을 삭제하고 진행해봤다

# tar tvf my.tar

>> my.tar로 묶인 원본 파일들의 경로를 확인할 수 있다.

 

예시 - x (묶음 해제)

 

# tar xvf my.tar

>> my.tar으로 묶인 파일들을 모두 풀어준다. ( 묶였던 경로 그대로 되돌아가 풀어준다) >> 원본파일을 그대로 복구

# tar Cxvf newdir my.tar

>> my.tar의 파일내용들을 newdir라고 사용자가 지정한 위치에 풀어준다.

 

 

+)

파일묶기와 파일압축을 동시에 한 경우 # tar xvj my.tar. 이 아닌 # bunzip2 를 할 경우에는 압축을 해제한 묶음 파일 my.tar가 이미 현 디렉터리 내에 있기 때문에 오류 메시지가 뜬다.

 

참고도서: 이것이 리눅스다 with RedHat CentOS 8 (개정판) _우재남 (한빛미디어)

 

 

SMALL