1. 묶고 풀기 ( tar )
☞ tar 명령은 파일을 묶는 명령이다.
원래는 백업을 위해 테이프백업 장치인 DAT Device 에 백업을 할 때 쓰는 명령이었지만, 요즘은 파일의 압축이나 묶기에 더 많이 쓰이는 편이다.
압축명령에는 compress 나 gzip 이 따로 있지만 tar 명령으로 통합해서 쓰면 편리하고 좋다. 우선 파일을 묶는 방법에 대해 알아 본다.
- tar 명령으로 파일을 묶을 때는 주의해야 할 것이 있는데 바로 디렉토리 단위로 묶는 것이다. 공개 자료실등에서 tar 파일을 받아서 풀 경우 디렉토리 단위로 묶지 않은 파일이면 수십개의 파일이 풀려 나와 디렉토리가 엉망이 되니 신경을 써야 된다.
- tar는 아카이브 안의 파일에 대한 소유권과 허가권을 그대로 가지고 있으며, 심볼릭 링크나 하드링크, 디렉토리 구조를 유지한다. 뒤에 나오지만 이런점 때문에 tar를 이용해서 시스템 내에서의 데이터의 이동이나 복사에 자주 사용된다.
- 묶기
$ tar cvf 생성_파일명.tar 대상 파일명(또는 대상 디렉토리) - 풀기
$ tar xvf 생성_파일명.tar
ex)
$ tar cvf doc.tar doc/
$ tar xvf doc.tar
☞ tar 파일의 종류는 다음과 같다.
- *.tar <-- 일반적으로 tar로만 묶었을 때
- *.tar.Z <-- compress 로 압축했을 때
- *.tar.z <-- gzip 으로 압축(gunzip으로 푼다)
- *.tar.gz <-- gzip 으로 압축(gunzip으로 푼다)
- *.tgz <-- gzip 으로 압축(gunzip으로 푼다)
2. 압축, 압축풀기
☞ 압축은 compress 나 gzip 등의 명령을 쓰면 된다.
- compress를 이용한 압축(*.tar.Z)
$ compress 대상파일명.tar - uncompress를 이용한 압출풀기
$ uncompress 대상파일명.tar.Z
- gzip을 이용한 압출(*.tar.gz)
$ gzip 대상파일명.tar - gunzip을 이용한 압축풀기
$ gunzip 대상파일명.tar.gz
- 각각의 경우에서 뒤의 확장자 .Z .gz가 붙고 떨어지는 것을 주의 깊게 봐야 한다.
- 파일을 풀기 전에 tar 파일의 내용을 알고 싶을 때 직접 풀지 않고 내용을 보려면 -t 옵션을 주어 풀기를 test 할 수 있다.
ex) $ tar tvf 대상 파일명.tar
3. 동시수행
☞ tar 명령으로 묶기와 압축을 동시에 수행할 수 있다.
아래와 같이 tar 명령에서 z 옵션을 주면 된다. 하지만 사용되는 OS에 따라서 z옵션이 지원되지 않는 경우도 있다.
- 동시 수행
- $ tar cvfz 생성파일명.tgz 대상파일/
- $ tar xvfz 대상파일명.tgz
- $ tar tvfz 대상파일명.tgz
- 파이프를 이용한 압축 (*.tgz)
$ tar cvf - 대상파일/ | gzip > 생성파일명.tgz - 파이프를 이용한 압축풀기
$ gunzip -c 대상파일명.tgz | tar xvf -
- 묶어서 디렉토리 옮긴 후 풀기
$ tar cvf - 대상파일명 | ( cd 디렉토리명 ; tar xvf - )