Linux

[Linux] 압축 - tar(tape archive)

thdwldud 2025. 9. 1. 21:41

tar(tape archive)

  • 여러 파일을 하나의 파일로 묶어주는 명령으로 사용
  • 파일로 묶을 때 디렉터리를 지정하면 그 디렉터리의 모든 파일과 하위 디렉터리까지 함께 묶임
  • 파일의 속성, 하드 링크. 심볼릭 링크 등도 보존됨
  • 리눅스에서 사용되는 GNU tar는 옵션을 이용해서 파일로 묶거나 풀 때 압축 관련 작업을 동시에 진행할 수 있음
  • 지원되는 압축 형식에는 compress(tar.Z), gzip(tar.gz), bzip2(tar.bz2), xz(tar.xz) 등이 있음
  • tar 명령은 묶을 때 기존 파일을 복사하는 형식으로 진행되는데, 원본이 보전되는 관계로 백업 도구로 많이 사용되고 있음
  • 옵션 사용시 -기호를 사용하지 않아도 되지만, 인자값이 있는 옵션을 여러개 나누어서 지정할 때는 -기호를 사용해야 함
tar [option] [파일명]

 

옵션

옵션 설명
-c
--create
지정한 파일이나 디렉터리를 하나로 묶어 새로운 tar 파일을 생성
-x
--extract, --get
생성된 tar 파일을 풂
-v
--verbose
어떤 명령을 실행할 때 대상이 되고 있는 파일들을 보여줌
c 옵션과 함께 사용하면 묶여지는 동안 파일의 이름을 보여줌
-f 파일명
--f=파일명
작업 대상이 되는 tar 파일의 이름을 지정
파일명 대신 ‘-’를 쓰면 표준 입출력이 됨
-r
--append
기존의 tar 파일 뒤에 파일을 추가
-t
--list
tar 파일 안에 묶여 있는 파일의 목록을 출력
-h
--dereference
심볼릭 링크가 가리키고 있는 원본 파일을 저장
-C
--directory=디렉터리명
디렉터리를 변경할 때 사용
-p
--same-permissions
파일이 생성되었을 때의 권한을 그대로 유지하게 해줌
root 사용자는 기본적으로 적용되는 옵션
-Z
--compress, - -uncompress
compress 관련 옵션으로 예전 UNIX 계열 표준 압축 파일인 tar.Z에 사용
-z
--gzip
gzip 관련 옵션으로 압축 파일인 tar.gz에 사용
-j
--bzip2
bzip2 관련 옵션으로 압축 파일인 tar.bz2에 사용
-J
--xz
xz 관련 옵션으로 압축 파일인 tar.xz에 사용
--delete 생성된 tar 파일에서 특정 파일을 삭제

 

사용 예

  • 현재 디렉터리의 ‘.c’로 끝나는 모든 파일을 posein.tar 파일로 묶는데, 진행 결과를 출력
tar cvf posein.tar *.c
  • posein이라는 디렉터리와 하위 디렉터리의 모든 파일을 posein.tar로 묶음
tar cf posein.tar posein/
  • 현재 디렉터리에 posein.tar 파일을 풂
tar xvf posein.tar
  • 현재 디렉터리에 있는 jalin.txt와 yuloje.c라는 파일을 posein.tar라는 파일에 추가로 묶음
tar rvf posein.tar jalin.txt yuloje.c
  • posein.tar의 내용을 보여줌
tar tvf posein.tar
  • 현재 디렉터리에서 .c로 끝나는 모든 파일을 gzip 압축과 동시에 posein.tar.gz 파일로 묶음
tar zcvf posein.tar.gz *.c
  • gzip으로 압축된 php-8.2.11.tar.gz 파일을 풂
tar zxvf php-8.2.11.tar.gz
  • bzip2로 압축된 php-8.2.11.tar.bz2 파일을 풂
tar jxvf php-8.2.11.tar.bz2
  • xz로 압축된 php-8.2.11.tar.xz 파일을 /usr/local/src 디렉터리에 풂
tar Jxvf php-8.2.11.tar.xz -C /usr/local/src