출처
설명
여러개의 파일을 모아서 하나의 파일(tar 형식)로 만들어 줍니다.
주요 옵션
옵션 | 내용 |
---|---|
-c | 파일 묶음을 생성 |
-x | 파일 묶음을 해제 |
-z | 파일을 gzip 압축하면서 묶음을 생성 |
-v | 처리 상황을 출력 |
-t | 파일 묶음에 들어있는 파일 목록을 출력 |
-P | 절대 경로 처리 |
--exclude | 파일 제외. exclude는 tar 버전에 따라 커맨드의 제일 앞에 사용되어야 하는 경우도 있음. |
--delete | 파일 삭제 |
사용예제
파일 압축
# foo, bar를 archive.tar로 만듬
tar -cf archive.tar foo bar
# archive.tar 파일 안에 묶여 있는 내용을 확인
tar -tf archive.tar
# foo, bar를 gzip 압축하여 archive.tar.gz 으로 만듬
tar -zcvf archive.tar.gz foo bar
# source_dir의 .log, .attatch 로 끝나는 파일, folder_name 디렉토리 제외하고 file.tar.gz 으로 압축
tar -zcvf file.tar.gz source_dir --exclude="*.log" --exclude="*.attach*" --exclude="./folder_name"
# source_dir의 logs 폴더는 제외하고 압축. exclude 옵션을 제일 앞에 사용해야 하는 경우가 있음
tar --exclude="source_dir/logs" -zcvf file.tar.gz source_dir
파일 해제
# archive.tar 파일 묶음 해제
tar -xf archive.tar
# archive.tar.gz 압축 파일의 묶을 해제
tar -zxvf archive.tar.gz
경고: tar: Removing leading ```/' from member names
tar 로 압축을 진행할 때 절대 경로로 설정되어 있으면 발생하는 경고입니다. 절대 경로를 제거하고 압축을 진행합니다. 경고 이기 때문에 참고만 하면 됩니다.
# 다음과 같은 경우 실제 압축은 etc/sample/conf 로 진행
$ tar -zcf sample.tgz /etc/sample/conf
# 파일 압축 상태 확인
$ tar -tf sample.tgz
etc/sample/conf/file_a
etc/sample/conf/file_b
$ tar -zcfP sample2.tgz /etc/sample/conf
# 파일 압축 상태 확인
# / 를 기준으로 압축이 진행 됨
$ tar -tf sample2.tgz
/etc/sample/conf/file_a
/etc/sample/conf/file_b
파일 삭제
압축 파일안에 파일을 삭제 합니다. --file 옵션과 함께 사용해야 합니다.
$ tar -tf txt.tar
a.txt
b.txt
$ tar --delete --file=txt.tar a.txt
$ tar -tf txt.tar
b.txt
GNU-tar / BSD-tar
tar 실행 파일은 GNU 버전과 BSD 버전이 있습니다. 맥북 Ventura 버전에서는 BSD tar 이 설치 되었고, 우분투 20에는 GNU tar 이 설치 되었습니다. 이로 인해 맥북에서 압축한 tar 파일을 우분투에서 압축 해제할 때 오류가 발생하였습니다.
이때는 맥북에 GNU 버전 tar 을 설치하여 오류를 확인할 수 있습니다.
# 맥북 기본 tar
$ tar --version
bsdtar 3.5.3 - libarchive 3.5.3 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.8
# gnu tar 설치 후 확인
$ brew install gnu-tar
$ gtar --version
tar (GNU tar) 1.34
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by John Gilmore and Jay Fenlason.