Tom's Note
article thumbnail
반응형

개요

이 포스팅은 tar의 구조를 파악하고 옵션 사용법을 숙지합니다.

 

1. tar란?

2. tar 옵션

 

 


1. tar란?

출처 : https://recipes4dev.tistory.com/146

들어가기 앞서, tar의 본질은 압축이 아닙니다.

tar는 "테이프 아카이버(Tape ARchiver)"의 단어들을 조합하여 하나의 약어로 명명됩니다. 

tar의 t(tape, 테이프)는 과거의 저장 장치인 테이프로 백업하기 위해 만들어진 프로그램입니다.

tar의 ar(archive, 아카이버)은 통상적으로 "여러파일을 하나의 파일로 합치는 프로그램"을 의미합니다.

즉, tar는 여러 파일을 하나로 묶을 때 사용하는 것입니다. (용량변화 없이 하나로 모으는 것) 

사실 tar라는 기능은 유닉스가 메인프레임 같은 중대형 컴퓨터용이었고, 대량의 데이터를 다루다 보니 생긴 기능입니다.

 

 


tar를 사용하는 이유 : 관리 - 백업

저장 장치에 파일을 저장하거나 네트워크를 통해 파일 전송할 때, 여러 파일이 있으면 관리가 복잡해지기 때문입니다.(유지보수 측면에서도 관리가 힘들어집니다.)

즉, 여러 파일을 하나로 관리하기 위한 목적으로 만들어진 프로그램입니다. 이러한 이유로, 백업용도로 많이 사용되고 있습니다.

 

 


tar 압축 기능

출처 : 위키 tar(파일 포맷)

 

앞서, tar는 본질적으로 파일을 합치는 용도라고 하였습니다. 그렇지만 하나의 파일로 관리한다고 한들 용량이 제어가 되지 않으면 관리라고 할 수가 없는 노릇입니다. 그래서 tar는 압축 기능을 제공합니다.

 

 

압축형식:

압축형태 기본형태 축약 간략설명
gzip .tar.gz .tgz zip과 같은 압축 알고리즘을 사용하지만 더 용량이 작음.
(다른 파일끼리의 중복되는 부분을 하나로 압축이 가능하기 때문)
xzip .tar.xz .txz LZMA2 압축 알고리즘을 사용하는 7-zip은 윈도우에서만 제공하는데 유닉스에 제공하기위해 사용됨
압축효율이 가장 좋음.
bzip .tar.bz2 .tb2, .tbz, .tbz2 용량이 클 때, gzip에 비해 압축률은 좋지만 비교적 느림
Z .tar.Z .tZ ASCII나 바이너리 파일을 의미
lzma .tar.lzma .tlz bzip2보다 더 높은 압축률 제공(최대 4GB)
.tar.lz - LZMA 알고리즘에 기초함
무결성을 확인하기 위한 CRC 체크섬이 지원됨

 

tar가 널리쓰이는 이유는 아카이버 기능과 tar로 묶여지기 전 파일들의 속성, 심볼릭 링크, 디렉토리 구조 등 그대로 가져갈 수 있기 때문입니다. 그래서 리눅스 용으로 프로그램, 데이터, 소스 등 배포 용도로 많이 사용됩니다.

 


종합하자면, tar는 압축 기능이 있는 아카이버입니다.


 


2. tar 옵션

tar 명령의 주요 옵션은 아래와 같습니다.

자세한 옵션 설명은 "tar --help" 또는 "man tar"를 통해 확인 가능

  tar [OPTION...] [압축이름] [디렉터리이름] ... 
-f 대상파일을 tar 아카이브 지정 (기본 옵션)
-c tar 아카이브 생성. 기존 아카이브 덮어 쓰기 (파일 묶을 때 사용)
-x tar 아카이브에서 파일 추출(파일 풀 때 사용)
-v 처리되는 과정(파일 정보)을 자세하게 나열
-z gzip 압축 적용 옵션
-j bzip2 압축 적용 옵션
-t tar 아카이브에 포함된 내용 확인
-C 대상 디렉토리 경로 지정
-A 아카이브 파일을 tar 아카이브에 추가
-d tar 아카이브와 파일 시스템 간 차이점 검색
-r tar 아카이브 마지막에 파일들 추가
-u tar 아카이브에 새롭게 추가된 파일만 추가
-k tar 아카이브 추출 시, 기존 파일 유지
-U tar 아카이브 추출 전, 기존 파일 삭제
-w 모든 진행 과정에 대해 확인 요청. (interactive)
-e 첫 번째 에러 발생 시 중지

 


tar 생성

# temp/ 디텍토리를 temp.tar로 파일로 묶는다.    
$ tar cvf temp.tar temp/

tar 해제

# temp.tar의 아카이브를 푼다.
$ tar xvf temp.tar 

압축 생성

# temp/ 디렉터리를 temp.tar.gz이라는 파일로 압축한다.  
$ tar czvf temp.tar.gz temp/ 

압축 해제

# temp.tar.gz 파일 압축해제한다.    
$ tar xzvf temp.tar.gz
반응형
profile

Tom's Note

@크크크크

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!