본문 바로가기
IT/LINUX

리눅스 tar 명령어 사용법 파일 하나로 합치기

by SidePower 2020. 10. 27.

서버 관리에서 많은 소스파일들을 배포할 때 가장 유용한 명령어가 tar입니다.

 

배포해야 될 소스파일이 한두 개가 아니고 수십, 수백 개일 때

여기서 또 디렉터리 위치까지 다를 때 어떻게 하나하나 다 배포하나요?

 

바로 tar입니다.
tape archiver의 줄임말입니다.

 

tar는 여러 파일을 하나의 tar 파일로 묶는 명령어입니다.

묶을 때 원본 디렉터리와 파일 그대로 묶입니다.

 

파일이나 디렉토리 날짜, 소유권을 그대로 할 수 있습니다.
gzip의 압축 기능도 있어 큰 용량도 부담 없이 합칠 수 있습니다.
그리고 tar 풀 때 이미 사용 중인 폴더이고
폴더 안에 파일들이 있어도
이름이 다르면 기존 디렉터리나 파일들은 전혀 건드리지 않으니 맘 놓고 푸시면 됩니다.

 옵션 
c : tar 파일로 묶기
x : 묶인 tar 파일 해체하기
v : 처리과장 화면에 표시하기
f : tar 파일 이름 지정하기
z : gzip으로 압축하기
p : 소유권 권한 그대로 유지
C : 지정된 디렉터리에 압축 풀기
r : 이미 생성된 tar 파일에 추가로 더 넣기
t : tar 안에 내용 보기

기본 옵션으로 v와 f를 지정해서 사용합니다.
당연히 안 써도 되는데요.
v로 잘 합체되고 있는지 궁금하기도 하고
f로 내가 원하는 tar 파일명을 지정하잖아요.ㅋ
vf는 늘 쓴다라고 생각하시면 맘 편합니다.

 기본 사용법 

 tar cvf 파일. tar 대상 파일들 또는 디렉터리 

 

아래와 같이 디렉터리와 파일이 있다고 가정할게요.

ls -al

-rw-rw---- 1 user1 group1 0 날짜 hello.txt

drwxrwx--- 1 user1 group1 1 날짜 fold1
cd fold1
ls
aaa.txt bbb.txt
cd ..

 

 1) 폴더 전체 tar 묶기 : c  

tar cvf test1.tar fold1

ls -al

-rw-rw---- 1 user1 group1 날짜 hello.txt

drwxrwx--- 1 user1 group1 날짜 fold1

-rw-rw---- 1 user1 group1 날짜 test1.tar

 

 2) tar 파일 내용 보기 : t  

tar tvf test1.tar

drwxr-xr-x  user1/group1 0 날짜 fold1

-rw-rw---- user1/group1 1 날짜 fold1/aaa.txt

-rw-rw---- user1/group1 1 날짜 fold1/bbb.txt

 

 3) 기존 tar에 파일이나 디렉터리 추가하기 : r  

tar rvf test1.tar ccc.txt

tar tvf test1.tar

drwxr-xr-x  user1/group1 0 날짜 fold1

-rw-rw---- user1/group1 1 날짜 fold1/aaa.txt

-rw-rw---- user1/group1 1 날짜 fold1/bbb.txt

-rw-rw---- user1/group1 1 날짜 ccc.txt

 

 4) find 나 ls로 찾은 파일들 묶기 : $()  

tar cvf test2.tar $(find . -name "*.txt")

tar tvf test2.tar

-rw-rw---- user1/group1 1 날짜 fold1/aaa.txt

-rw-rw---- user1/group1 1 날짜 fold1/bbb.txt

-rw-rw---- user1/group1 1 날짜 ccc.txt


 5) 묶음과 동시에 압축하기 : z  

tar zcvf test1.tar.gz *

ls -al

-rw-rw---- 1 user1 group1 날짜 hello.txt

drwxrwx--- 1 user1 group1 날짜 fold1

-rw-rw---- 1 user1 group1 날짜 test1.tar.gz


 6) tar 풀기 : x  

tar xvf test1.tar

./fold1

./fold1/aaa.txt

./fold1/bbb.txt


 7) 압축된 tar 풀기 : z  

tar zxvf test1.tar.gz

./fold1

./fold1/aaa.txt

./fold1/bbb.txt


 8) 선택한 디렉터리에 tar 풀기 : -C  

tar xvf test1.tar -C fold2

fold1

fold1/aaa.txt

fold1/bbb.txt

cd fold2

ls -al

drwxrwx--- 1 user1 group1 날짜 fold1


감사합니다.

반응형

댓글