절대 경로로 tar된 파일을 상대 경로로 풀어야 할 경우가 있다.

이럴 경우 pax 명령어를 이용하면 손 쉽게 해결할 수 있다.
단, 모든 Unix에서 가능한 것은 아니다.

우선 tar 파일을 풀고자 하는 경로에 복사한다.

다음 명령어를 실행한다.

pax -r -s ',^/,,' -f file.tar

그러면 file.tar의 내용이 $CWD(현재 디렉토리)에 풀리게 된다.

>>>>>>>>>>>>>>> 원문 <<<<<<<<<<<<<<<<<<

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

                             UNIX GURU UNIVERSE
                                UNIX HOT TIP

                       Unix Tip 3462 - August  2, 2011

                   http://www.ugu.com/sui/ugu/show?tip.today

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


EXTRACT RELATIVE FROM ABSOLUTE

Ever had a tar archive which
was tarred up with an absolute
path, but you need to untar
it to a relative location?

There is an easy way to do
this using the "pax" command.
Note: Not available on all
flavors.

Firstly, copy the archive to
the relative location in
which you wish to untar it.

Then, execute the following
command:

pax -r -s ',^/,,' -f file.tar

The contents of file.tar will now
be in the $CWD.



--------------------------------------------------------------------------
To Subscribe:    http://www.ugu.com/sui/ugu/show?tip.subscribe
To Unsubscribe:  http://www.ugu.com/sui/ugu/show?tip.unsubscribe
To Submit A Tip: http://www.ugu.com/sui/ugu/show?tip.today

==========================================================================
DISCLAIMER: All UNIX HOT TIPS ARE OWNED BY THE UNIX GURU UNIVERSE AND ARE
NOT TO BE SOLD, PRINTED OR USED WITHOUT THE WRITTEN CONSENT OF THE UNIX
GURU UNIVERSE. ALL TIPS ARE "USE AT YOUR OWN RISK". UGU  ADVISES THAT
ALL TIPS BE TESTED IN A NON-PRODUCTION DEVELOPMENT ENVIRONMENT FIRST.

Unix Guru Universe - www.ugu.com - tips@ugu.com - Copyright 1994-2001
==========================================================================
신고
Posted by She쥐포s

○ 상용 Unix에서 절대 경로로 묶인 tar 파일 풀기

    Linux가 아닌 일반 상용 Unix(HP-UX, Solaris 등)에서 리눅스에서 tar 파일
    풀 듯이 아무 생각없이 풀어버리다가 낭패를 당한 적이 있을 것이다.
    어느 회사의 미들웨어 시스템이 HP-UX이던 시절, Test 서버에서 아무
    생각없이 tar를 풀다가 헐~ 하는 경우를 당했었는데..
    Test 서버였기 망정이지..

    어제 갑자기 지인이 그 방법을 물어오길래 생각이 나서..
    한 노트 끄적여 보려고 한다. 

    □ Method 1. GNU tar로 해결 

        지금 생각해 보면 무식한 방법이었던 것 같다. root 권한을 마음대로
        사용할 수 없었는데 root 권한을 갖고 있는 사람에게 굽신굽신하며
        설치를 부탁했던 기억이 난다. 

    □ Method 2. pax 사용 

        "Linux 서버 관리 Hacks 100"이란 책을 보다가 알게된 방법으로 pax를
        사용하는 방법이다.


        - 파일 내용 보기
            # pax -f FILENAME
            예) pax -f sinzi76.tar

        - 절대경로를 상대경로로 바꾸어서 풀기
            # pax -rv -s,절대경로,상대경로, -f FILENAME
            예) pax -rv -s,/home,./pgclks, -f sinzi76.tar

        - Interactive하게 풀기 옵션(-i)
            # pax -rif FILENAME
            예) pax -rif sinzi76.tar
            이 옵션을 사용하면 파일마다 경로를 바꿀 것인지 그대로 풀 것인지 확인

        ※ pax는 tar 및 cpio 파일을 풀 수 있으며 파일이 압축된 경우 -z 옵션을
           함께 사용한다. 그렇지 않으면 에러를 내므로 pax를 사용하기 전에
            file 명령을 이용하여 압축여부를 확인하여 사용하도록 한다.

        ※ 기타 자세한 내용은 man page 참조

신고
Posted by She쥐포s


티스토리 툴바