본문 바로가기

리눅스/명령어

[압축관련 - tar]

tar


설명

리눅스의 압축생성 또는 해제 하는 명령어다.

윈도우의 알집 또는 반디집과 비슷하다고 생각.

-z , -j 와 같은 옵션없이 tar 명령어만 사용하면 압축이 아닌 파일을 하나로 묶은 것으로 된다.


명령어

압축 생성 tar [option] [압축파일 이름] [압축할 파일 경로]    

압축 해제 tar [option] [압축파일 이름] 

생성이나 해제 또는 검색시 -f 옵션은 필수로 써야한다.


[option]


[option 2]



실습


1) 압축파일 생성

[root@localhost test]# ls -l

합계 8

drwxr-xr-x. 2 root root 4096 2017-11-08 20:42 test1

drwxr-xr-x. 2 root root 4096 2017-11-08 20:42 test2


실습을 위해 사용 될 test1 , test2 디렉터리를 확인.

[root@localhost test]# tar -cvf alzip.tar test1 test2

test1/

test2/

[root@localhost test]# ls -l

합계 20

-rw-r--r--. 1 root root 10240 2017-11-08 20:46 alzip.tar


tar -cvf 명령을 사용해 test1 , test2 디렉터리를 alzip.tar 파일로 묶는다. (압축 x)

-z , -j 옵션 없이 사용했으므로 압축이 아닌 파일을 alzip 라는 이름으로 묶은 것일 뿐이다.
쉽게 말해서 alzip.tar 이란 디렉터리에 test1 , test2 디렉터리가 이동했다고 생각. 
현재 alzip.tar 파일의 크기를 보면 10240으로 4096*2 보다 용량이 크다. (압축이 되지않음)

[root@localhost test]# tar -cvzf alzip.tar.gz alzip.tar 
alzip.tar
[root@localhost test]# ls -l
합계 24
-rw-r--r--. 1 root root 10240 2017-11-08 20:46 alzip.tar
-rw-r--r--. 1 root root   171 2017-11-08 20:52 alzip.tar.gz

alzip.tar 파일을 gzip 압축파일로 생성한다.
용량을 확인해보면 171로 확실이 압축 된 것을 확인할 수 있다.


2) 압축해제

[root@localhost test]# ls -l

합계 4

-rw-r--r--. 1 root root 171 2017-11-08 20:52 alzip.tar.gz

[root@localhost test]# tar -zxvf alzip.tar.gz 

alzip.tar

[root@localhost test]# ls -l

합계 16

-rw-r--r--. 1 root root 10240 2017-11-08 20:46 alzip.tar

-rw-r--r--. 1 root root   171 2017-11-08 20:52 alzip.tar.gz


압축된 gzip 파일의 압축을 해제한다.

압축해제된 alzip.tar을 확인하면 확장자 gz가 사라지고 용량이 늘어났다. 


[root@localhost test]# tar -xvf alzip.tar

test1/

test2/

[root@localhost test]# ls -l

합계 24

-rw-r--r--. 1 root root 10240 2017-11-08 20:46 alzip.tar

-rw-r--r--. 1 root root   171 2017-11-08 20:52 alzip.tar.gz

drwxr-xr-x. 2 root root  4096 2017-11-08 20:42 test1

drwxr-xr-x. 2 root root  4096 2017-11-08 20:42 test2

[root@localhost test]# 


alzip.tar 파일을 압축해제 하면 압축해제 된 디렉터리 test1 , test2가 표시된다.


3) 압축파일 생성 심화

[root@localhost test]# ls -l

합계 4

drwxr-xr-x. 2 root root 4096 2017-11-08 21:43 test1

[root@localhost test]# ls -lR test1

test1:

합계 0

-rw-r--r--. 1 root root 0 2017-11-08 21:43 mailbox.txt

-rw-r--r--. 1 root root 0 2017-11-08 21:43 sandmail.txt


test1 디렉터리에 생성 된 mailbox , sandmail 두개의 파일을 확인.

[root@localhost test]# tar -cvf alzip.tar test1 --exclude mailbox.txt
test1/
test1/sandmail.txt
[root@localhost test]# tar -tf alzip.tar 
test1/
test1/sandmail.txt
[root@localhost test]# ls -l
합계 16
-rw-r--r--. 1 root root 10240 2017-11-08 21:46 alzip.tar

exclude 옵션을 이용해 test1 디렉터리에 mailbox.txt 파일은 제외하고 압축한다.
tf 옵션을 사용해 확인 해보면 alzip.tar 압축파일에 mailbox.txt 파일은 제외 된 것을 확인 할 수 있다.