tar 포맷으로 파일을 백업하기

윈도 환경에서는 거의 접할 일이 없지만 리눅스나 OSX를 사용하면서 간간히 볼 수 있는 포맷이다. tar는 tape archive의 약어로 컴퓨터의 초창기에 테이프에 자료를 백업하기 위해 자료를 직렬화하여 기록할 수 있는 포맷으로 개발되었다. 초기 유닉스때 채택되어 지금까지 사용되는 유서깊은 포맷이며, tar는 이 포맷을 지칭하는 동시에 이 포맷으로 자료를 직렬화하는 프로그램을 가리키는 말이기도 하다.

tar로 압축을 할 때 다음과 같이 쓰면 된다. 파일명에 .gz가 붙는 이유는 gzip으로 압축되었다는 표시이다.

tar -cvzf newtarfile.tar.gz file1 file2 file3 …

옵션은 다음과 같다.

  • c : create. 신규 tar 파일을 작성한다.
  • v : verbose. 추가되는 파일이 무엇인지 알려준다. 이 옵션을 빼면 아무것도 화면에 표시하지 않는다.
  • z : gzip 알고리듬을 사용하여 데이터를 압축한다. 압축을 풀때는 무시된다.
    이때는 파일 이름에 .tar.bz2 를 통상 붙여준다. (풀 때도 j 옵션을 주라고)
  • f : 기록장치로 파일을 사용한다.

이렇게 압축한 파일을 풀 때는 x옵션을 사용한다.

tar -xvf newtarfile.tar

다른 동작들

tar 파일 내의 파일을 삭제하고 싶을 때

tar -f tarfile.tar –delete file2 file4

tar 파일에 다른 파일을 추가할 때

tar -rf tarfile.tar file7 file8

새로운 파일로 업데이트 할 때. 신규 파일인 경우에만 추가된다.

tar -uf tarfile.tar file7

살펴볼만한 옵션들

  • p : 추출시 파일의 접근 권한을 유지한다.
  • P : 압축 시 파일의 절대 경로를 보존한다. 이 옵션으로 압축하면 어느 위치에서 풀어도 원래의 절대 경로에 풀리게 된다.
  • o : 추출 시 같은 이름의 파일이 파일 시스템에 이미 존재한다면 덮어쓴다.

리눅스나 유닉스 계열에서는 사용자 계정 데이터를 통째로 백업하는데 이 명령을 사용할 수 있다.

tar -cvzfP my_backup.tar.gz ~