gnu tar

카테고리 없음 2012. 1. 9. 14:45

출처  http://www.ibm.com/developerworks/forums/thread.jspa?threadID=218349 

tar -tf MBOX.2011122202.tar.gz | grep pja97
--- ID로 검색하여 백업파일에서 목록 확인

tar -zxvf MBOX.2011122202.tar.gz ./MBOX/prugios.com/1/p/j/7/pja97
사용자의 디렉토리만 압축해제
--------------------

tar 사용법
게시: 2002/08/23 09:07:17 오후  
    답변
tar 사용법

tar의 플래그
c : 아카이브 생성
x : 아카이브로 부터 파일 추출
t : 목차 테이블 보기
v : 상세한 정보 출력

아카이브 만들기
$ cd /
$ tar -cf backup.tar home/
/home 의 하위디렉토리를 포함하여 backup.tar로 저장

아카이브 압축하기
$ gzip backup.tar
backup.tar.gz 이라는 파일을 생성하여 원래의 tar 아카이브보다 훨씬 더 작게 압축

압축된 아카이브 만들기
$ cd /
$ tar -cf - home/ | gzip > backup.tar.gz

(주의) v옵션 문제
$ tar -cvf - home | gzip > backup.tar.gz 을 하였을때는 tar에 따라서 v(verbose)
옵션을 stderr로 처리하지 않고 stdout으로 처리하여 문제를 일으키는 경우가 있다.
따라서 아카이브를 만들때는 v옵션을 빼는 것이 좋고, 아카이브를 풀때는 v 옵션과
관계가 없다.

아카이브 풀기
$ gunzip backup.tar.gz
$ tar -xf backup.tar

압축된 아카이브 풀기
$ zcat backup.tar.gz | tar -xf -

gzip이 내장된 GNU tar
GNU tar의 경우 gzip 처리를 내장하고 있다. 따라서 다음과 같이 처리할 수 있다.
$ cd /
$ tar -czf backup.tar.gz home/

$ tar -xzf backup.tar.gz

아카이브 내용보기
$ tar -tf backup.tar
아카이브를 풀기전에 항상 파일들의 이름을 먼저 검사한다. 만일 아카이브 속의
파일들이 현재 디렉토리에 풀리도록 묶여 있다면, 임시 디렉토리를 새로 하나
만들고, 그곳으로 이동(cd)하여 파일들을 풀어낸다.

일부 파일들만 뽑아내기
$ tar -xvf backup.tar filename
여기서 filename은 tar의 -t옵션으로 파일의 경로명까지 알아야 한다. filename과
./filename은 서로 다르게 처리되므로 정확한 파일명을 지정해야 한다.

$ tar -xvf backup.tar `tar -tf backup.tar|grep filename`
의 방법을 쓰는 것도 좋다.

(주의) 절대 경로 문제
절대경로를 갖는 디렉토리 또는 파일을 복구할 때 문제가 발생한다. tar는
아카이브에 지정되어 있는 경로명으로 파일을 복구하기 때문에, 파일이 복구될 곳을
변경할 수가 없다. 따라서 이미 존재하는 파일을 덮어쓰거나 퍼미션 문제가 발생할
수 있다.
GNU tar의 경우, 기본적으로 모든 절대 경로명을 상대경로 변경하여 아카이브를
만든다. --absolute-names 옵션을 사용하면 절대 경로로 아카이브를 만든다.
가장 좋은 방법은 아카이브를 만들때 디렉토리가 슬래시(/)나 틸드(~)로 시작하지
않도록 조심하는 것이다.
또 다른 방법으로는
$ cd /
$ tar -cf backup.tar .
를 줄여서

$ tar -cf backup.tar -C / .

-C 옵션은 아카이브를 생성하기 전에 /로 이동하도록 한다. 여러 개의 디렉토리들을
아카이브로 만들려면 -C옵션을 여러번 사용한다.
$ tar -cf backup.tar -C /home/smiletw . -C /home/woody ./test
아카이브에 추가하기
$ tar -uvf backup.tar home/
새로운 파일들만 업데이트 한다. 동일한 파일이 업데이트 되면 아카이브 마지막에 추가한다.
문혁찬
tar 사용법
게시: 2002/08/28 02:49:09 오전     답글: 이흥신의 게시물  
    답변

아카이브에 추가하기
$ tar -uvf backup.tar home/
새로운 파일들만 업데이트 한다. 동일한 파일이 업데이트 되면 아카이브 마지막에 추가한다.

라는 항목을 보고 궁금해서 질문 합니다.

혹시..위 처럼 tar를 사용 할 때... "동일한 파일이 업데이트 되면 아카이브 마지막에 추가한다." 라는 말씀은... 변경된 파일을 말씀하시는 것인가요??

예를들면... test.tar 에 이미 a.txt가 존재하고있고, 만약 a.txt를 수정한후 "tar -uvf test.tar" 하면 수정된 a.txt가 해당 test.tar에 적용된다는 의미입니까??

아카이브 마지막에 추가한다는 말씀의 의미가 조금 헤깔리네요...

Posted by 익스퍼트
,