상세 컨텐츠

본문 제목

[Linux] tar 명령어

System/OS

by 귤똥 2018. 6. 29. 02:33

본문

 

tar 명령어와 gzip 명령어에 대해서 알아보자

 

우선 tar 명령어가 어떤 역할을 하는지에 대해서 알아보면 다음과 같다.

 

다수의 파일 또는 디렉터리를 하나의 아카이브 파일로 생성하는 것

 

여기서 아카이브는 다수의 파일 또는 디렉터리를 압축과정 없이 하나의 파일로 묶는 것을 의미한다.

 

그럼 실제로 위의 설명대로 확인할 수 있는지 테스트해 보자.

 

 

 

/tmp 디렉터리에 있는 파일을 tar 명령어를 이용해 아카이브 파일을 생성하였다.

 

그런데 생성된 아카이브 파일이 /tmp 디렉터리보다 용량이 더 큰 것을 확인할 수 있다.

 

왜 그런지 알아보면

 

tar 명령어는 아카이브를 생성할 때 테이프 저장 장치에 기록하는 것 처럼

 

아카이브 파일을 생성한다.

 

테이프 저장 장치의 특성상 하나로 연결되어 있기 때문에 파일의 구분할 수없는데

 

tar 명령어는 파일을 구분하기 위해 레코드당 512 Byte 블록의 수를 지정한다.

 

해당 부분을 변경하지 않으면 블록의 수는 Default 값 20이다.

 

즉 레코드당 크기는 10,240 Byte가 된다고 보면 된다.

 

 그러면 위의 사진에 나와있는 tmp.tar 파일의 레코드 수는 몇 개인지 확인해 보자

 

현재 파일 크기가 419,840 Byte , 블록의 사이즈는 512 Byte , 블록의 개수 20이므로

 

레코드 수 = 419840 / 512 / 20 즉 41개의 테이프 레코드가 생성된 걸 확인 할 수 있다.

 

정리를 하면 파일 사이즈가 레코드 사이즈인 10,240 Byte가 넘으면 레코드가 추가로 생성되면서

 

tar 명령어로 생성한 아카이브 용량에 레코드 사이즈가 추가가 된다. 

 

 

이렇게 용량이 다른 이유에 대해서 알아보았고

 

다음으로는 주로 사용하는 tar 명령어 옵션에 대해서 확인한다.

 

엄청 많은 옵션들이 존재하기 때문에 

 

주로 사용하는 옵션만 간단하게 설명을 하겠다.

 

c옵션 : 파일 및 디렉터리를 tar 명령어로 묶음

 

v옵션 : tar 명령어의 진행과정을 화면에 출력

 

f옵션 : 아카이브 파일의 이름을 지정

 

t옵션 : 아카이브 파일의 내용물 확인

 

x옵션 : 아카이브 파일 및  gzip파일 묶음 해제

 

z옵션 : 아카이브 파일을 gzip을 이욯해 압축

 

 

 

 

간단하게 예제를 통해 아카이브 파일 생성 및 해제하는 방법에 대해서 알아보자.

 

 

 

아카이브 파일 생성

 

tar -cvf[아카이브 파일명.tar] [디렉터리 및 파일 경로 및 이름]

 

 

아카이브 파일 해제

 

tar -xvf[아카이브 파일명.tar]

 

 

 

아카이브 파일 내용 확인

 

tar -tvf[아카이브 파일명.tar]

 

 

 

아카이브 파일 압축

 

tar -zcvf[아카이브 파일명.tar] [디렉터리 및 파일 경로 및 이름]

 

 

명령어 옵션 중 특이한 것은 z옵션으로

  

tar 명령으로 만들어진 아카이브 파일을 gzip으로 압축하는 것이다.

 

z옵션으로 tar 명령을 실행하여 옵션 적용 전후 용량 비교를 해보자.

 

 

 

확인해보면 z옵션을 추가하여 tar 아카이브 파일을 gzip으로 압축하게 되면

 

z옵션이 없는 것 보다 용량이 줄어드는것을 확인할 수 있다.

 

 

 

 

'System > OS' 카테고리의 다른 글

[Linux] IP 설정  (0) 2019.08.07
[Linux] Logrotate 설정  (1) 2019.08.06
[Windows] FTP 없이 파일 전송 방법  (0) 2018.06.27
[Linux] History 명령어  (0) 2018.06.25
[Linux] yum 사용방법 및 resolve 에러 해결방법  (0) 2017.07.25

관련글 더보기