BOX-IT/Linux

[Linux] 파일 압축할 때 쓰는 tar과 gzip이 뭘까?

Buang 2022. 4. 27. 09:54
반응형

1. tar과 gzip 배경설명

 

윈도우에서 파일을 압축할 땐 마우스 우클릭을 하고 압축하기를 해줬었다.

이 압축하기를 할 때 두 가지 과정이 이루어진다.

 

하나는 파일을 묶어주는 것이고

두 번째가 묶은 파일을 압축해주는 것이다.

 

즉 바로 파일 압축이 되는 것이 아닌

파일을 묶고, 압축이 된다는 것이다.

 

파일을 왜 묶는가 싶을 수도 있는데

우리가 압축을 할 때 보통 여러개의 파일을 압축할 때 사용을 한다.

 

이 여러개의 파일을 모두 shift 키를 누른 상태로 클릭해 주는 걸 파일 묶기라고 생각하면 쉽다.

 

갑자기 왜 shift키가 나왔냐고 묻는다면

shift 키를 누른 상태로 마우스를 이용해 파일 하나하나를 클릭하면

클릭한 파일들이 모두 선택된다.

 

shift키를 누르지 않은 채로 평소처럼 마우스를 통해 파일을 클릭하면

파일을 하나만 선택할 수 있었는데

 

 

 

shift키를 누른 상태로 

마우스를 이용해 파일을 하나, 하나, 하나 선택해주면 

클릭한 것들이 모두 선택된다.

 

위의 사진은 shift키를 누른 상태로 

$Windows.~WS폴더랑 $WinREAgent 폴더랑 AppServ 폴더를 각각 

마우스 클릭한 경우를 사진 찍은 것이다.

 

사진에서 보는 것처럼 3개의 파일이 모두 선택되어 있는 걸 확인할 수 있다.

 

이렇게 여러 파일을 선택하는 과정을 파일 묶기 과정이라고 생각하면 될 거 같다.

(정확한 설명은 아니나, 비유를 들자면 이렇다는 거다.)

 

리눅스에선 파일을 묶을 때 tar란 명령을 쓰고,

파일을 압축할 땐 gzip이란 명령어를 쓴다.

 


2. gzip&gunzip

 

gzip은 파일을 압축할 때 사용하는 명령어다.

gzip [압축할 파일이름] 이렇게 작성해주면 된다.

 

1번. [root@nanalinux ~/down]# cp /etc/services y

 

1번 해석

etc 아래에 있는 services라는 파일이 있다.

이 services란 파일을 복사해서 현재 내 위치인 donw에 붙여넣기 할 거다.

이때 services란 이름의 파일을 down에 붙여넣기 할 때

y라는 이름으로 변경해서 붙여넣기 하고 싶다. 그래서 맨 마지막에 y를 적어줬다.

 

 

2번. [root@nanalinux ~/down]# ls -lh

 

2번 해석

ls -lh는 파일의 크기를 알고 싶을 때 사용하는 명령어다.

y 파일은 현재 655k라고 표시되어 있다.

 

 

3번. [root@nanalinux ~/down]# gzip y

       [root@nanalinux ~/down]# ls -lh

 

3번 해석

gzip y는 y라는 파일을 압축하겠단 뜻이다.

y라는 파일이 압축되면서 133K로 용량이 확 줄고

y라는 파일명이 y.gz로 바꼈다. gzip으로 y 파일이 압축됐단 걸 보여준다.  

 

 

4번. [root@nanalinux ~/down]# gunzip y.gz

 

4번 해석

압축했던 y파일을 압축 해제하겠단 뜻이다.

 

 


3. tar

 

tar 명령어를 이요하면 여러 개의 파일을 묶을 수도 있고, 풀 수도 있다.

 

 

3-1. tar로 묶인 파일 풀 때 명령어

      : tar xf [풀어 줄 파일명 입력]

 

 

tar 옆에 xf란 옵션이 보인다.

 

x는 파일을 풀 때 사용하는 옵션이고,

f는 기본옵션으로 파일 이름을 지정한다.

 

예) 가령 httpd-2.4.53tar 처럼 httpd-2.4.53파일이 tar로 묶여있다고 했을 때

tar xf httpd-2.4.53tar라고 입력하면 tar를 통해 묶였던 파일이 풀려진다.

ls 명령어를 입력해주면

 

httpd-2.4.53 디렉토리가 생성된 걸 확인할 수 있다.

 

 

3-2. tar로 파일 묶을 때 명령어

      : tar cf [어떤 이름으로 파일 묶을 건지 지정].tar [묶을 파일]

 

c 옵션 파일을 묶을 때 사용하는 옵션이다.

 

예) h란 이름으로 httpd-2.4.38이란 파일을 묶고 싶다.

그렇다면 tar ch h.tar httpd-2.4.38

을 입력해주면 httpd-2.4.38이란 파일이 h.tar란 이름으로 묶인다.

 

ll을 입력하면

 

h.tar가 만들어진 걸 확인할 수 있다.

 

3-3. 묶은 파일을 압축하기

 

위에서 tar를 통해 파일을 묶어줬었다.

이제 묶여진 h.tar를 압축 해보자.

 

gzip h.tar

 

명령어를 사용하면 h.tar파일이 압축된다.

 

ls -lh

 

를 입력하면

 

h.tar.gz

 

가 생성된 걸 확인할 수 있다. 

 


4. tar 명령어로 파일 묶고 압축하는 걸 한 꺼번에 처리하기

 

tar 명령어로 파일을 묶고, 압축하는 걸 한 번에 할 수 있다.

 

tar cfz [압축한 후 파일 이름 지정] [압축할 디렉토리 이름]

 

tar 옆에 cfz 옵션이 보인다.

c는 create 만들겠단 뜻이다.

f는 파일의 기본 옵션이다.

z는 gzip이다.

반응형