본문 바로가기

운영체제/리눅스

[리눅스] tar(리눅스 파일 압축, 폴더 압축)

리눅스 파일압축 명령어 - tar명령어

리눅스에서도 윈도우에서와 같이 파일을 압축하거나 압축해제 하여야 할 경우가 있다.

이때 사용하는 명령어가 tar(tape archive)명령어이다.


특정 확장자의 파일들만 압축하거나,

특정 디렉터리를 압축할 수도 있고,

압축해제도 할 수 있다.



tar [option] [압축할파일명] [압축대상파일명...]


주요옵션

리눅스 버전에 따라 옵션이 차이가 있을 수 있음.

옵션의 - 는 생략가능하다.

기본 디렉터리는 현재 디렉터리 기준이다.

파일명 대신 *.txt 등으로 활용하면 특정 확장자의 모든파일에 대해 적용 가능하다.


참고로 -z옵션 등으로 압축형식을 지정해주지 않으면 압축 없이 단순히 파일이 묶이는 기능만 있다.

헤더 등으로 오히려 용량이 증가하게됨.


 옵션

설명

-c

 압축을 위한 옵션

-x

 압축 해제를 위한 옵션

-t

 압축파일의 내용을 보기 위한 옵션

-r

 기존 파일에 추가 압축을 위한 옵션

-v

 진행상황을 보여주거나, 상세내용을 보여준다.

-f 파일명

 대상 파일명을 지정해 준다.

-C 디렉터리

 압축 해제할 디렉터리를 지정해준다.

--exclude 파일명

 특정 파일명을 제외하고 압축한다.

-p

 퍼미션을 유지해 준다.

-z

 tar.gz로 압축해 준다. 이외 다른 형식도 존재한다.

-g

 증분 백업시 사용하는 옵션




사용예시 및 사용화면


▼ tar cf test.tar *.txt - 현재 디렉터리에서 txt확장자를 가진 모든 파일을 test.tar로 압축

▼ tar cvf test.tar *.txt - 위와 같으나 v옵션을 넣어주어 진행상황을 보여줌

v옵션을 넣어주면 어떤파일이 압축이 되고 있는지를 보여준다.

v옵션은 다른 옵션과의 조합에 따라 기능이 조금씩 다르다.



▼ tar tvf test.tar - test.tar에 압축되어 있는 파일들의 목록을 보여준다.

-z 같은 압축 옵션을 주지 않았기 때문에 실제로 용량압축은 되지 않았다.


▼ tar rvf test.tar a.hwp - test.tar에 a.hwp를 추가로 압축해준다.

test.tar에 a.hwp가 추가되었다.



▼ tar xvf test.tar -C a : a라는 디렉터리에 test.tar를 푼다.

현재 디렉터리에는 해당 파일이 모두 있어 -C옵션으로 다른 디렉터리에 파일을 풀어보았다.



▼ z옵션을 주지않은 파일과 z옵션을 준 파일의 용량비교

z옵션을 줘서 tar.gz로 압축된 파일과 단순 tar로 압축된 파일의 용량이 차이가 나고 있다.

두파일 모두 a~d.txt와 a.hwp파일을 압축했는데,

test.tar는 오히려 용량이 증가하였고,

test.tar.gz는 압축되어 용량이 감소되었다.



▼ tar cvf test2.tar *.txt --exclude a.txt : a.txt를 제외한 압축

--exclude를 이용하여 특정 확장자를 제외하고 압축할 수 있다.

또한 --exclude옵션은 여러번 넣어 여러 확장자를 동시에 제외할 수 있다.