본문 바로가기

os/linux

[Linux] tar 명령어 옵션 및 사용법

[Linux] tar 명령어 옵션 및 사용법

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 리눅스의 tar 명령어에 대해서 알아보려 합니다.

 

아카이브와 압축을 위한 명령어인데 자세한 내용은 본문에서 설명드리겠습니다.

 

시작합니다.

 

linux-logo
리눅스 로고


아카이브

 

아카이브(archive)라는 말을 들어보신 적이 있으신가요?

 

아카이브(archive)는 역사적 가치 혹은 장기 보존의 가치를 지닌 기록이나 문서들의 컬렉션을 의미하며
동시에 이러한 기록이나 문서들을 보관하는 장소, 시설, 기관 등을 의미한다.

 

사전적인 의미로는 위와 같고 리눅스에서의 아카이브는 다음과 같은 역할을 합니다.

 

  • 여러 개의 파일을 하나의 파일로 묶어서 보관
  • 백업, 복제 시 편리하게 사용

 

리눅스 시스템에서 아카이브를 어떻게 적용시키는지 알아보시죠.


tar 명령어

 

리눅스에서 아카이브를 위해 가장 일박적으로 사용되는 명령어입니다.

 

묶어줄 파일들에 읽기 권한이 있어야 아카이브가 가능하며, 아카이브 파일은 기본적으로 현재 위치에 생성됩니다.

 

아카이브를 하면서 압축까지 동시에 진행할 수 있습니다.

 

tar 명령어에는 여러 옵션이 존재합니다.

 

옵션을 지정할 때 대시(-)를 붙여주게 되면 옵션의 순서가 올바르게 입력되어야 합니다.

 

그래서 저는 tar 명령어의 옵션에 대시(-)를 사용하지 않습니다.

 

대시(-)를 붙이지 않으면 순서 상관없이 옵션을 사용할 수 있습니다.

 


tar 명령어 옵션

 

옵션 동작
c 새로운 아카이브 생성
x 아카이브 파일을 풀어줌
t 파일 목록을 보여줌
f 작업할 아카이브 파일명 지정
v 파일이 아카이브 또는 압축되거나 풀리는 과정을 시각화

 

 

tar 압축 옵션

 

옵션 압축방식 확장자 특징
z gzip .tar.gz 속도가 빠름
j bzip2 .tar.bz2 gzip보다 압축률 좋음
J xz .tar.xz 가장 최신, 압축률 좋음

 


위에서 살펴본 옵션들을 활용하는 예시를 살펴봅시다.

 

우선 테스트를 진행할 디렉터리에 진입합니다.

 

# test 파일을 10개 만들어줍니다.

$ touch test{1..10}
$ ls

# 디렉터리에 존재하는 파일 리스트를 살펴보면 테스트파일 10개가 생성되었음을 확인

 

touch-test-file
테스트 파일 생성

 

테스트 파일 1, 2, 3을 아카이브 파일로 묶어봅시다.

 

팁) 아카이브 파일의 이름뒤에 .tar 를 붙여주면 파일명만 보아도 아카이브 파일인지 구분이 가능합니다.

 

# test1 test2 test3을 test1-3.tar란 이름으로 묶음
$ tar cf test1-3.tar test1 test2 test3

# test1-3.tar 안 파일의 목록을 보여줌
$ tar tf test1-3.tar

 

tar-ex-1
아카이브 파일 생성 및 확인

 

테스트 파일 모두를 gz 형식으로 압축해 봅시다.

 

# test1~10 파일들을 alltest.tar.gz란 이름으로 gz 압축형식으로 압축한다.
$ tar cvfz alltest.tar.gz test{1..10}

# 아카이브 파일을 이동
$ mv alltest.tar.gz ./심심한코딩/

# 작업 디렉터리 이동
$ cd 심심한코딩/

# 디렉터리 내 존재하는 파일 목록 출력
$ ls

# alltest.tar.gz 압축 해제
$ tar xvfz alltest.tar.gz

# 디렉터리 내 존재하는 파일 목록 출력
$ ls

 

tar-ex-2
tar 명령어 압축과 해제


여기까지 리눅스 tar 명령어의 옵션 및 사용법의 내용이었습니다.

 

리눅스에는 압축을 위한 명령어가 더 존재하지만 오늘은 tar에 대한 내용만을 살펴보았습니다.

 

필요에 따라 다른 명령어를 사용하기도 하겠지만 일반적으로 tar 명령어를 주로 사용하기에 다뤄보았습니다.

 

리눅스를 사용함에 있어 꼭 필요한 명령어들을 가지고 돌아오겠습니다.

 

감사합니다.

반응형