루트가 포함된 tar 압축 풀 때 원하는 단계만 현재 디렉토리에 풀기

아래와 같은 파일이 있다.

/home/keige/test/c/a.out

/home/keige/test/c/a.c

/home/keige/test/c/filter/code.c

위 파일들을 tar -cf t.tar /home/keige/test 로 묶고 나서

/home/keige/test2 디렉토리에서 tar -xvf t.tar를 하게 되면

/home/keige/test2/home/keige/test/c/a.out

/home/keige/test2/home/keige/test/c/a.c

/home/keige/test2/home/keige/test/c/filter/code.c

로 풀리게 된다.

원하는 것은 아래와 같이 /home/keige/test의 서브 디렉토리만 뽑아서 현재 디렉토리에 추출하는 것이다.

/home/keige/test2/c/a.out

/home/keige/test2/c/a.c

/home/keige/test2/c/filter.code.c

이것을 간단히 tar의 –strip-path 옵션으로 해결해본다.

사용법은 –strip-path=NUM 이며 NUM에는 제거할 리딩 컴포넌트 수를 적는다.

/home/keige/test의 서브디렉토리만 추출한다면 디렉토리가 3단계(/가 세개)로 되어 있으므로

[keige@svr test2]$ tar -xvf t.tar –strip-path=3

와 같이 실행하면 원래 목록에서 /home/keige/test는 제거되어

c/a.out

c/a.c

c/filter/code.c

만 현재 디렉토리에 풀리게 된다.

]]>

도큐멘트, 미분류 에 올린 글

댓글 남기기