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
그리드형(광고전용)
'System Software > Linux' 카테고리의 다른 글
[리눅스 명령어] xz / unxz (0) | 2022.03.12 |
---|---|
[리눅스 명령어] bzip2 / bunzip2 (0) | 2022.03.12 |
[리눅스 명령어] gzip / gunzip / zcat (0) | 2022.03.12 |
[리눅스 명령어] compress / uncompress (0) | 2022.03.12 |
[리눅스] 소스 파일을 이용한 설치 (0) | 2022.03.12 |
[리눅스 명령어] crontab (0) | 2022.03.12 |
[리눅스 명령어] at / atq /atrm (0) | 2022.03.12 |
[리눅스 명령어] chkconfig (0) | 2022.03.12 |