반응형
리눅스 상에서 tar 명령어를 이용할때 절대경로를 이용해서 하면  원하는 곳에 풀수가 없고 만들때 지정된 절대경로를 사용해서 그대로 풀린다.
얼마전 하루넘게 절대경로로 압축된 tar 파일을 상대경로로 풀기 위해 삽질을 하여 이곳에 적어둔다. 이는 다시 상대경로를 이용해서 압축하는 방법을 이용하는 수밖에 없다. 아니면 임시폴더를 이용하여 압축을 풀고 cp를 하던가..

그럼 상대경로를 이용하여 tar 압축을 하는 법을 알아보자

예를 들어 /root/aaa/bb/ex폴더를 압축할때 

tar cfP new.tar /root/aaa/bb/ex      

이렇게 지정하면 압축풀때 /root/aaa/bb/ex 폴더로 풀리게 된다.

따라서  tar 로 압축할때는 상대경로로 이동해서 압축을 하여야 한다.

이미 절대경로를 사용해서 만들었다면 이걸 상대경로로 푸는방법이 있긴 하다. pax 명령어를 이용하는 것이다.
# cd /target 
# /usr/bin/pax -r -s ',^/,,' -f /test.tar 

$ pax -r -s ',^ __없앨 경로들___ , __원하는 경로들___ ,' -f 파일.tar
---> 없앨 경로 : 이미 압축 파일에 포함되어있는 없애고 픈 경로들
---> 원하는 경로 : 압축 파일에 있지만, 압축 해제와 동시에 새로운 경로로 풀리기를 바라는 경로

단,  파일 이름이 . 으로 시작하는 hidden file들은 풀리지 않고 tar -C 처럼 지정한 경로에 풀수 없다는 단점이 있다.


참고

https://kldp.org/node/90185


반응형

+ Recent posts