tar 명령은 파일을 묶는 명령입니다. 원래는 백업을 위해 테이프백업 장치인 DAT Device 에 백업을 할 때 쓰는 명령이었지만, 요즘은 파일의 압축이나 묶기에 더 많이 쓰이는 것 같습니다.압축명령에는 compress 나 gzip 이 따로 있지만 tar 명령으로 통합해서 쓰면 편리하고 좋습니다. 이해를 돕기 위해 압축이나 묶여지는 파일을 "대상파일" 이라고 하고, 압축해서 생긴 파일을 "생성파일" 이라고 하겠습니다. 우선 파일을 묶는 방법에 대해 알아 봅시다.
묶기 $ tar cvf 생성 파일명.tar 대상 파일명 또는 대상 디렉토리
풀기 $ tar xvf 생성 파일명.tar |
|
tar 명령으로 파일을 묶을 때는 주의해야 할 것이 있는데 바로 디렉토리 단위로 묶는 것입니다. 공개 자료실등에서 tar 파일을 받아서 풀 경우 디렉토리 단위로 묶지 않은 파일이면 수십개의 파일이 풀려 나와 디렉토리가 엉망이 됩니다. 신경을 써야 됩니다. tar는 아카이브 안의 파일에 대한 소유권과 허가권을 그대로 가지고 있으며, 심볼릭 링크나 하드링크, 디렉토리 구조를 유지합니다. 뒤에 나오지만 tar를 이용해서 시스템내에서의 데이터의 이동이나 복사에 자주 사용됩니다. |
위 명령은 디렉토리 doc를 모두 묶어서 doc.tar 파일로 만드는 명령입니다. 풀기는
doc.tar 파일이 풀리면서 /doc 가 생깁니다. tar 파일의 종류는 다음과 같습니다.
*.tar
*.tar.Z <-- compress 로 압축했을 때
*.tar.z <-- gzip 으로 압축(gunzip으로 푼다)
*.tar.gz "
*.tgz " | 압축은 compress 나 gzip 등의 명령을 쓰면 됩니다.
$ compress 대상파일명.tar |
-> 대상파일명.tar.Z |
$ gzip 대상파일명.tar |
-> 대상파일명.tar.gz |
풀기는
$ uncompress 대상파일명.tar.Z |
-> 대상파일명.tar |
$ gunzip 대상파일명.tar.gz |
-> 대상파일명.tar |
각각의 경우에서 뒤의 확장자 .Z .gz가 붙고 떨어지는 것을 주의 깊게 보셔야 합니다. 파일을 풀기 전에 tar 파일의 내용을 알고 싶을 때 직접 풀지 않고 내용을 보려면 -t 옵션을 주면 풀기를 test 할 수 있습니다.
위에서 말 했듯이 tar 명령으로 묶기와 압축을 동시에 수행할 수 있습니다. 바로 tar 명령에서 z 옵션을 주면 되지요.
$ tar cvfz
$ tar xvfz
$ tar tvfz |
그럼 응용을 해볼까요. 다음의 네 가지는 파일을 묶고 압축하는 방법과 풀기입니다.
1. 전통적인 사용방법
$ tar cvf 생성파일명.tar 대상파일/ |
-> 생성파일명.tar |
$ gzip 생성파일명.tar |
-> 생성파일명.tar.gz |
$ gunzip 생성파일명.tar.gz |
-> 생성파일명.tar |
$ tar xvf 생성파일명.tar |
-> 대상파일/ |
2.파이프를 이용한 압축
$ tar cvf - 대상파일/ | gzip > 생성파일명.tgz |
-> 생성파일명.tgz |
$ gunzip -c 생성파일명.tgz | tar xvf - |
-> 대상파일/ |
3. 동시수행
$ tar cvfz 생성파일명.tgz 대상파일/ |
-> 생성 파일명.tgz |
$ tar xvfz 생성파일명.tgz |
-> 대상파일/ |
4. 묶어서 디렉토리 옮긴 후 풀기
tar cvf - 대상파일명 | ( cd 디렉토리명 ; tar xvf - ) |
4번은 파일이나 디렉토리를 묶어서 파이프로 넘기고 cd로 목적 디렉토리로 가서 파일을 푸는 과정으로 하위 디렉토리가 복잡한 디렉토리의 이동에 유용하게 사용됩니다. | |
출처 : Tong - nae tong님의 서버운영체제통