별의 공부 블로그 🧑🏻‍💻
728x90
728x170

tar

압축 기능

  • Tape Archive
  • 테이프 관련 장치를 이용하여 백업할 때 사용하는 명령이었지만, 현재는 여러 파일들을 하나의 파일로 묶어주는 명령으로 사용한다.
  • 파일로 묶을 때, 디렉터리를 지정할 경우
    • 그 디렉터리의 모든 파일서브 디렉터리들까지 함께 묶여진다.
  • 파일의 속성, 하드 링크, 심볼릭 링크 등도 보존된다.
  • 유닉스, 리눅스에서 사용되는 tar 명령의 비교
    • 유닉스
      • 파일로 묶어주거나 풀어주는 기능만 가능하다.
    • 리눅스
      • GNU tar
      • 옵션을 이용해서 파일을 묶거나 풀 때 압축 관련 작업을 동시에 진행할 수 있다.
  • 지원되는 압축 형식
    • compress (tar.Z)
    • gzip (tar.gz)
    • bzip2 (tar.bz2)
    • xz (tar.xz)

 

사용법

tar [option] [파일명]
  • 옵션 사용 시, - 기호를 사용하지 않아도 된다.
    • 단, 인자값(Argument)이 있는 옵션을 여러 개 지정하는 경우에는 - 기호를 사용해야 한다.

 

주요 옵션

옵션 설명
-c 지정한 파일이나 디렉터리를 하나로 묶어(Combine) 새로운 tar 파일을 생성함.
-x 생성된 tar 파일을 풀음.
v - 어떤 명령을 실행할 때, 대상이 되고 있는 파일들을 보여줌.
- 예) c 옵션과 함께 사용하면 묶여지는 동안 파일의 이름을 보여줌.
-f 파일명 - 작업 대상이 되는 tar 파일의 이름을 지정함.
- 파일명 대신 -를 쓰면 표준 입출력이 됨.
- (--file=파일명)
-r 기존의 tar 파일 뒤에 파일을 추가함.
-t tar 파일 안에 묶여 있는 파일의 목록을 출력함.
-h 심볼릭 링크가 가리키고 있는 원본 파일을 저장함.
-C - 디렉터리를 변경(Change)할 때 사용
- (--directory=디렉터리명)
-p 파일이 생성되었을 때의 권한(Permission)을 그대로 유지하게 해줌.
-Z - compress 관련 옵션
- 예전 유닉스 계열 표준 압축 파일은 tar.Z에 사용함.
- (--compress, --uncompress)
-z - gzip 관련 옵션
- 압축 파일인 tar.gz에 사용함.
- (--gzip)
-j - bzip2 관련 옵션
- 압축 파일인 tar.bz2에 사용함.
- (--bzip2)
-J - xz 관련 옵션
- 압축 파일인 tar.xz에 사용함.
- (--xz)

 

사용 예

예 1
  • 현재 디렉터리에서 .c로 끝나는 파일을 starrykss.tar 파일로 묶는데, 진행 결과를 출력함.
$ tar cvf starrykss.tar *.c

 

예 2
  • starrykss 라는 디렉터리와 서브 디렉터리의 모든 파일을 starrykss.tar로 묶음.
$ tar cf starrykss.tar starrykss/

 

예 3
  • 현재 디렉터리에 starrykss.tar 파일을 풂.
$ tar xvf starrykss.tar

 

예 4
  • 현재 디렉터리에 있는 jalin.txt 와 yuloje.c 파일을 cc.tar 파일에 추가로 묶음.
$ tar rvf cc.tar jalin.txt yuloje.c

 

예 5
  • starrykss.tar 의 내용을 보여줌.
$ tar tvf starrykss.tar

 

예 6
  • 현재 디렉터리에서 .c로 끝나는 모든 파일을 gzip 압축과 동시에 starrykss.gz 파일로 묶음.
$ tar zcvf starrykss.tar.gz *.c

 

예 7
  • gzip으로 압축된 php-4.0.4.tar.gz 파일을 풂.
$ tar zxvf php-4.0.4.tar.gz

 

예 8
  • bzip2로 압축된 php-5.1.4.tar.bz2 파일을 풂.
$ tar jxvf php-5.1.4.tar.bz2

 

예 9
  • xz로 압축된 php-5.5.4.tar.xz 파일을 /usr/local/src에 풂.
$ tar Jxvf php-5.5.4.tar.xz -C /usr/local/src

 

 

백업 기능

  • 유닉스와 리눅스 시스템 모두 사용 가능한 유틸리티
  • 파일이나 디렉터리들을 하나의 파일로 묶어주는 역할을 한다.
  • 전통적인 유닉스 tar은 압축 관련 옵션이 없지만, 리눅스에서 사용하는 GNU tar는 압축을 지원한다.
  • 장점
    • 사용이 쉽고 소량의 파일 백업에 좋다.
    • 원본 파일을 남겨두므로 안전하다.

 

(1) 전체 백업

예 : 전체 백업
  • /home 디렉터리를 퍼미션 등을 그대로 유지하면서 home.tar 이라는 파일로 묶음.
# tar cvfp home.tar /home

 

예 : 전체 백업 복원
  • home.tar 를 풀어서 현재 디렉터리에 복원
# tar xvf home.tar

 

(2) 증분 백업

예 : 증분 백업
  • list 라는 파일의 내용을 토대로 증분 백업을 시도하는데, 처음 사용하는 경우에는 전체 백업을 함.
    • -g : 증분 백업에 사용하는 옵션
# tar -g list -cvfp home1.tar /home

 

  • list 라는 파일의 내용과 비교하여 증가된 것만 home2.tar로 백업함.
# tar -g list -cvfp home2.tar /home

 

예 : 증분 백업 복원
  • 처음에 백업한 파일부터 순차적으로 복원하면 됨.
# tar xvf home1.tar -C /
# tar xvf home2.tar -C /

 

(3) 날짜를 이용한 부분 백업

예 : 부분 백업
  • /home에서 2013년 5월 13일 이후로 변경된 파일만 home.tar로 백업함.
# tar -c -v -N '13 May 2013' -f home.tar /home

 

(4) 압축 및 분할 백업

예 : 압축 및 분할 백업
  • /home 디렉터리를 압축하여 10MB 단위로 백업함.
  • split 명령은 지정한 파일명 뒤에 aa, bb 등의 형태로 파일이 생성되므로, 'home.tar.gzaa', 'home.tar.gzab' 등으로 생성됨.
# tar zcvf - /home | split -b 10m - home.tar.gz

 

예 : 분할 백업 복원 예
  • split 명령은 텍스트 파일 관련 명령어이므로 복원할 때 cat 명령을 사용함.
# cat home.tar.gza* | tar zxvf -
728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️


📖 Contents 📖