프로그래밍/리눅스

Linux] tar 정의 및 사용방법

Hwan2 2019. 8. 18. 21:21
반응형



tar이라는 녀석은 Unix, Linux의 명령어 입니다.

이녀석의 주 역할은 여러개의 파일을 하나로 묶는 역할을 합니다.(압축이 아닙니다.)


탄생배경은 1979년 AT&T 벨 연구소에서 만들었으며 마그네틱 테이프(자기 테이프)에 파일을 저장하기 위해 만들어 졌습니다.

그리고 요즘은 주로 백업, 관리, 배포 등의 목적으로 사용됩니다.

때문에 Tape archive의 준말로 tar이 되었으며 tarball이라고도 불립니다.



위 사진은 test.c, test_2.c, test_3.c 파일 3개를 test.tar로 묶은 결과입니다.

보시면 test.tar의 크기가 더 커진걸 알 수 있습니다.


그 이유는 tar로 파일을 묶게되면 각 파일마다 헤더가 붙게 됩니다.

각 해더는 512블록으로 이뤄져 있으며 filed offset마다 해당 파일의 기본 정보가 들어가게 됩니다.

또한 tar로 묶게되면 512*n 만큼 크기가 결정되며 512바이트를 다 채우지 못한다면 NULL값으로 빈공간을 채우게 됩니다.

이 해더의 포맷형태는 UStar형식으로 이뤄지게 됩니다.



리눅스에서 압축이 필요하다면 압축 유틸리티를 사용해야 합니다

gzip, bzip2, unzip을 사용하면 됩니다.



tar의 명령어는 다음과 같습니다.

-f (--file)

 파일명을 지정해주는 명령어(필수)

-c (--create) 

 파일을 묶을 때 사용되는 명령어(필수)

 -x (--extract)

 묶은 파일을 풀 때 사용하는 명령어(필수)

 -v (--verbose)

 묶거나 압축하거나 풀리는 과정을 상세히 메시지로 보여줌

 -t (--list)

 tar안의 묶인 파일 목록들을 보여줌

 -r (--append)

 tar파일 마지막에 새로운 파일 추가

 -u (--update)

 tar파일 마지막에 새로운 파일 추가. 단, 최신 파일에 적용을 권장

 -z (--gzip)

 gzip형식으로 tar파일을 압축, 해제할 때 사용

 -j (--bzip2)

 bzip2형식으로 tar파일을 압축, 해제할 때 사용


참고 : https://www.computerhope.com/unix/utar.htm





상세설명


-f (--file)

파일들을 묶을 때 반드시 -f 명령어를 사용해 줘야 합니다.

그 이유는 tar자체가 마그네틱 테이프를 저장하기위해 만들어 졌고 그 배경을 토대로 발전해온 것이기 때문에

-f를 통해 파일명을 지정해 주지 않는다면 error가 발생됩니다.



-c (--create)

파일을 묶거나 압축할 때 반드시 넣어줘야 하는 명령어 입니다.

-c 의미가 묶으면서 새로운 아카이브(파일)를 생성한다는 의미가 담겨 있기 때문에

해당 명령어를 입력 후 새로운 파일명과 확장자를 명시해 줘야 합니다.

ex_1) tar -cf test.tar test1 test2

ex_2) tar -zcf test_gzip.gz test1 test2



-x (--extract)

묶이거나 압축된 아카이브(파일)를 해제할 때 사용하는 명령어로

풀고자 하는 압축파일이 있다면 반드시 사용해야 하는 명령어 입니다.

ex_1) tar -xf test.tar

ex_2) tar -zxf test_gzip.gz


반응형