○ 상용 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
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
                             UNIX GURU UNIVERSE
                                UNIX HOT TIP
 
                       Unix Tip 2327 - May 16, 2006
 
                   http://www.ugu.com/sui/ugu/show?tip.today
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
cpio로 디렉토리구조(tree) 복사하기
 
표준 Unix tar를 사용하여 디렉토리구조를 복사하게 되면 원래의 복사하는 동안
디렉토리와 파일에 대한 소유자와 그룹정보를 보존하지 않는다.
이 정보를 보존하기 위해서 다음과 같은 방법으로 find(1)와 pipe를 통해
cpio(1)를 사용하라.
 
% cd <원본 디렉토리>
% find . -depth -print | cpio -pudm <대상 디렉토리>
 
이 명령은 <원본 디렉토리>의 디렉토리 구조에 대한 미러 이미지를 <대상 디렉토리>에
생성할 것이다.
 
@@@@@@@@@@@@@@@@@@@@[ 원문 ]@@@@@@@@@@@@@@@@@@@@
 
COPY A TREE WITH CPIO
 
Using standard UNIX tar to copy a
tree doesn't preserve the original
owner and group information for the
directories and files during the copy.
To do this, use find(1) piped to cpio(1)
this way:
 
% cd <source-directory>
% find . -depth -print | cpio -pudm <dest-directory>
 
This will create a mirror image of the
<source-directory> tree in <dest-directory>.
신고
Posted by She쥐포s