본문 바로가기

리눅스-기초명령어/파일 관리

tar

tar은 여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령이다. "테이프 아카이버(Tape ARchiver)"의 앞글자들을 따서 "tar"이라는 이름으로 불립니다. 

 

아카이빙(archiving)과 압축(Compress)의 차이

아카이빙(archiving) : 파일이나 폴더를 하나로 묶는 행위 -> 용량을 줄어들지 않는다 주로 tar,cpio가 쓰인다.

압축(compress) : 파일이나 아카이브기기 디스크에서 차지하는 용량을 줄여주는 소프트웨어 도구이다 주로 gzip,bzip2,xz가 사용된다.

 

사용법

tar [옵션] [파일 또는 디렉토리]

 

옵션

옵션 설명
-c 지정한 파일이나 디렉토리를 하나로 묶어 새로운 tar 파일을 생성한다. (--create)
-x 생성된 tar 파일을 푼다.(--extract, --get)
-a 확장자를 기반으로 아카이브에 사용할 압축 프로그램을 정한다.
-f 파일명 작업 대상이 되는 tar 파일의 이름을 지정한다. 파일명 대신 ‘-’ 를 쓰면 표준입출력이 된다.(--file=파일명)
-v 어떤 명령을 실행할 때 대상이 된 파일들을 보여준다.
예를 들어 c 옵션과 함께 사용하면 묶이는 파일의 이름을 보여준다.(--verbose)
-t  tar 아카이브에 포함된 내용 확인
-C  디렉토리를 변경할 때 사용한다 (--directory=디렉토리명)
-z gzip 관련 옵션으로 압축 파일인 tar.gz에 사용한다.(--gzip)
-j bzip2 관련 옵션으로 압축 파일인 tar.bz2에 사용한다 (--bzip2)
-J xz 관련 옵션으로 압축 파일인 tar.xz에 사용한다.(--xz)

 

숙어처럼 같이 사용되는 옵션 

  1. tar -czvf : gzip 포맷으로 압축하여 하나의 아카이브 파일로 묶는다.
  2. tar -cjvf : bzip2 포맷으로 압축하여 하나의 아카이브 파일로 묶는다.
  3. tar -cJvf : xz 포맷으로 압축하여 하나의 아카이브 파일로 묶는다.

 

압축형식

옵션 압축형태 기본형태 설명
-z gzip .tar.gz zip과 같은 압축 알고리즘을 사용하지만 더                                                            용량이 작음.
-j bzip .tar.bz2 용량이 클 때, gzip에 비해 압축률이 좋지만 비교적 느림
-J xzip .tar.xz 7-zip은 윈도우에서만 제공하는데 유닉스에 제공하기위해 사용됨 압축효율이 가장 좋음.

 

예시

 

디렉토리를 tar로 묶고 내용 확인하기

#실습을 위해 새로운 디렉토리를 만들고 그 안에 파일을 생성
[root@rocky1 test]# tar cvf TESTcom.tar * #  TESTcom 디렉토리에 파일과 디렉토리들을 tar로 묶기
Com/
hi.txt
test.txt
[root@rocky1 test]# ls
Com  TESTcom.tar  hi.txt  test.txt
[root@rocky1 test]# tar -tvf TESTcom.tar # tar 내용 확인

drwxr-xr-x root/root         0 2023-05-09 10:23 Com/
-rw-r--r-- root/root         5 2023-05-03 12:40 hi.txt
-rw-r--r-- root/root         5 2023-05-03 12:53 test.txt
 

 

여러 파일을 tar로 묶기

[root@rocky1 test]# tar cvf TEST2.tar  hi.txt test.txt
hi.txt
test.txt
[root@rocky1 test]# ls
Com  TEST2.tar  TESTcom.tar  hi.txt  test.txt




압축하기

[root@rocky1 ~]# tar -czvf etc.tar.gz /etc 
[root@rocky1 ~]# ll                                      
-rw-r--r--. 1 root root 3256204  5월  9 09:47 etc.tar.gz 붉은색 글씨로  
압축파일을 표시해줍니다.



압축 풀기

[root@rocky1 etc]# tar -xzvf  etc.tar.gz -C /var/tmp

etc압축파일을 /var/tmp 의 위치에다가 푼다

 

원격 호스트에 압축 풀기

[root@rocky1 tmp]# tar -czvf - /etc | ssh rocky2 tar -xzvf - -C /tmp
# etc 디렉토리를 압축하여 rocky2 tmp폴더에 압축을 풀기

[root@rocky1 tmp]# ssh rocky2 ls /tmp

drwxr-xr-x. 132 root   root      8192  5월  9 09:32 etc

etc # 생성이 되었다.

 

'리눅스-기초명령어 > 파일 관리' 카테고리의 다른 글

dd(data dumper)  (0) 2023.09.01
SCP (Secure Copy)  (1) 2023.09.01