파일이나 폴더를 묶는 linux tar 명령어 사용법
tar 명령어는 파일과 폴더를 하나의 파일로 묶어주는 유틸리티(Archiving utility) 로 아카이브시 압축하지는 않습니다.
그래서 tar 묶은 후에 외부 압축 프로그램(gzip, bzip, xz 등)으로 압축하는 방식을 사용하며 tar 에서는 이런 기능을 제공합니다.
tar 는 Tape ARchiving 의 약자로 그 시대에는 테이프를 백업 장치로 사용했다고 합니다. 이런 이유로 파일을 대상으로 아카이빙하는 옵션인 -f 를 생략하면 TAPE 장치가 없어서 오류가 발생합니다.
Archive
단순 아카이빙
아카이브하는 operation 인 -c 를 사용하면 파일이나 폴더를 묶을 수 있습니다.
tar -cvf target.tar file1 file2 dir1 dir2
아카이빙 후 gzip 으로 압축
gzip 과 연결하는 옵션인 -z 를 사용하면 아카이빙 파일을 압축합니다. -z 옵션 사용시 압축 여부를 알수 있도록 확장자에 .gz 를 붙이는 게 관례입니다.
tar -cvzf target.tar.gz file1 file2 dir1 dir2
아카이빙 후 bzip2 로 압축
bgzip2 는 gzip 보다 압축률이 좋은 프로그램으로 -j 옵션을 사용하면 됩니다. -j 옵션 사용시 압축 여부를 알수 있도록 확장자에 .bz2 를 붙이는 게 관례입니다.
tar -cvjf target.tar.bz2 file1 file2 dir1 dir2
아카이빙 후 xz로 압축
xz 는 가장 최근에 나온 압축 프로그램으로 매우 좋은 압축률을 보여 주며 -J 옵션으로 tar 아카이빙을 압축할 수 있습니다. 확장자는 .xz 를 붙입니다.
tar -cvJf target.tar.xz file1 file2 dir1 dir2
풀기
tar 파일 해제
해제시에는 해제 operation 인 -x 를 사용하면 됩니다. 다음은 현재 폴더에 아카이빙 파일을 풉니다.
tar -xvf target.tar
압축된 tar 파일 해제
압축 방식에 따라 -j(bzip2), -J(xz), -z(gzip) 옵션을 추가하면 됩니다.
gzip2
tar -zxvf target.tar.gz
bzip2
tar -jxvf target.tar.gzip2
xz
tar -Jxvf target.tar.xz
해제 디렉터리 지정
tar 는 기본적으로 현재 디렉터리에 해제하므로 다시 적절한 디렉터리로 옮겨야 하는 문제가 있습니다. 해제 디렉터리를 지정하는 -C 옵션을 사용하면 해당 폴더에 압축을 풀수 있습니다.
tar -Jxvf target.tar.xz -C /opt
옵션
tar 의 동작은 operation 과 option 으로 나뉘어져 있습니다.
operation
operation | 의미 |
---|---|
-c, --create | 신규 아카이브 생성 |
-t, --list | 아카이브 내용 보기 |
-x, --extract | 아카이브 풀기 |
-r, --append | 기존 tar 아카이브 마지막에 추가 |
-u, --update | 수정 파일만 기존 tar 아카이브에 갱신 |
option
operation | 의미 |
---|---|
-f, --file=ARCHIVE | 파일을 대상으로 아카이빙합니다. 생략시에 TAPE 를 사용합니다. |
-v, --verbose | 처리 과정을 상세히 표시합니다. |
-j, --bzip2 | 압축/해제시 bzip2 를 사용합니다. |
-J, --xz | 압축/해제시 xz 를 사용합니다. |
-z, --gzip, --gunzip, --ungzip | 압축/해제시 gzip 을 사용합니다. |
-C, --directory | 해제시 지정한 경로에 풉니다. |