Linux] tar 정의 및 사용방법
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