gbmin's Tech Notes

서버 구축 및 유지보수, 클라우드 컴퓨팅, 네트워크 보안, IT 분야 기술 노트. :)

Tech Notes/Tools & Command

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

gbmin 2023. 5. 30. 21:24

tar는TapeARchive의약자로압축된아카이브파일을생성하거나압축해제를위해사용되는리눅스명령어다.tar를이용하면여러파일이나디렉터리를하나의파일로묶어효율적으로관리하고,압축하여용량을줄일수있고,파일백업,전송,압축등다양한작업을간편하게수행할수있다.

 

1. 기본사용방법

tar [옵션] [압축파일명] [압축할 파일 및 디렉터리...]

 

2. 옵션

옵션 설명
-c,--create 압축 파일을 생성
-x,--extract 압축 파일을 해제
-f<파일>,--file=<파일> 압축파일의이름을지정
-v,--verbose 실행 과정을 출력
-z,--gzip gzip으로압축
-j,--bzip2 bzip2로압축
-t,--list 압축파일안의내용을나열
-r,--append 압축파일에파일을추가
-u,--update 압축파일에수정된파일을업데이트
-d,--diff 압축 파일에 대한 기존 파일과의 차이점을 보여줌
-C<디렉터리> 지정한 디렉터리에 압축 파일을 생성하거나 해제
-p,--preserve-permissions 파일의퍼미션(권한)을보존하여압축파일을생성
--same-owner 압축파일을생성할때,원본파일과같은소유자로설정
--same-permissions 압축 파일을 생성할 때, 원본 파일과 같은 권한으로 설정
-P,--absolute-names 절대 경로로 파일을 압축하거나 해제
--exclude=<패턴> 지정한패턴과일치하는파일,디렉터리를압축에서제외
--exclude-from=<파일> 지정한파일에나열된패턴과일치하는파일,디렉터리를압축에서제외
--wildcards 와일드카드 패턴을 사용하여 압축를 생성 하거나 해제
-N<날짜>,--newer=<날짜> 지정한날짜이후에수정된파일만압축에추가
--exclude-caches 캐시파일을압축에서제외
--exclude-backups 백업파일을압축에서제외
--one-file-system 여러파일시스템이있는경우,하나의파일시스템만압축
--to-command=<명령어> 압축된데이터를지정한명령어로전송
-W,--verify 압축생성,추출후,결과를확인
-M,--multi-volume 분할압축를생성
--tape-length=<크기> 각분할압축파일의크기를지정
-F<파일>,--info-script=<파일> 분할압축생성시사용할정보스크립트파일을지정
--new-volume-script=<파일> 다음분할압축파일을요청할때사용할스크립트파일을지정

 

 

3. 사용 예제

압축파일 생성

tar -czvf backup.tar.gz /path/to/directory1 /path/to/directory2/file.txt

-c: 압축 파일 생성
-z: gzip으로압축
-v: 상세한실행과정출력
-f backup.tar.gz: 압축 파일 이름 지정
/path/to/directory1 /path/to/directory2/file.txt:압축할파일과디렉터리경로


압축해제

tar -xzvf archive.tar.gz

-x: 압축 파일 해제

-z: gzip으로압축해제
-v: 상세한실행과정출력
-f archive.tar.gz: 압축 해제할 파일 이름 지정


압축파일에추가

tar -rvf archive.tar newfile.txt

-r: 압축 파일에 추가
-v: 상세한실행과정출력
-farchive.tar: 압축 파일이름지정
newfile.txt: 압축 파일에 추가할 파일


특정 날짜 이후에 수정된 파일만 압축파일에 추가

tar -N 2023-01-01 -cvf archive.tar /path/to/directory

-N 2023-01-01: 2023년 1월 1일 이후에 수정된 파일만 압축파일에 추가
-c: 압축파일 생성
-v: 상세한실행과정출력
-farchive.tar: 압축 파일이름지정
/path/to/directory: 압축할디렉터리경로



지정한디렉터리에압축파일생성

tar -czvf backup.tar.gz -C /path/to/directory .

-c: 압축파일 생성
-z: gzip으로압축
-v: 상세한실행과정출력
-fbackup.tar.gz: 압축 파일이름지정
-C /path/to/directory: /path/to/directory로 압축파일 생성
.: 현재디렉터리압축


분할 압축

tar -czv --tape-length=1G -f backup.tar.gz /path/to/directory

-c: 압축파일 생성
-z: gzip으로압축
-v: 상세한실행과정출력
--tape-length=1G: 분할된 압축파일 크기를 1GB로 설정
-f backup.tar.gz: 압축 파일 이름 지정
/path/to/directory: 압축할디렉터리경로