PAX 아카이브에서 현재 디렉토리로 추출하는 방법.?

PAX 아카이브에서 현재 디렉토리로 추출하는 방법.?

아카이브의 디렉토리 구조를 사용하여 현재 디렉토리에 추출하려는 PAX 아카이브가 있습니다. 다음 명령을 시도했습니다.

JBSP03:/u/jsdbsp/jbsp03:cd /usr/lpp/sel/selcopy
JBSP03:/usr/lpp/sel/selcopy:pax CBL15112.pax.Z

하지만 모든 것을 내 루트 디렉터리로 추출했습니다.

/GIMPAF.XML
/GIMPAF.XSL
/S0001.CBL.PROD.CBL15112.README
/S0002.CBL.PROD.CBL15112.GIMUNZIP
/S0003.CBL.PROD.CBL15112.RIMLIB.pax.Z
/S0005.CBL.PROD.CBL15112.PGMDIR.pax.Z
/SMPHOLD
/SMPHOLD/S0004.CBL.PROD.HOLDDATA.pax.Z
/SMPPTFIN
/SMPPTFIN/S0006.CBL.PROD.CBL15112.PRODDATA.pax.Z
/SMPPTFIN/S0007.CBL.PROD.CBL15112.AZZS330.SMPMCS.pax.Z

아카이브의 내용을 나열하면 다음과 같습니다.

JBSP03:/usr/lpp/sel/selcopy:pax -f CBL15112.pax.Z
/GIMPAF.XML
/GIMPAF.XSL
/S0001.CBL.PROD.CBL15112.README
/S0002.CBL.PROD.CBL15112.GIMUNZIP
/S0003.CBL.PROD.CBL15112.RIMLIB.pax.Z
/S0005.CBL.PROD.CBL15112.PGMDIR.pax.Z

모든 파일이 루트 디렉터리에 있는 것으로 지정되어 있는 것을 볼 수 있습니다. 이로 인해 내가 선택한 디렉터리로 압축을 풀 수 없나요?

답변1

좋습니다. 모든 파일 이름의 앞에 있는 /는 해당 파일이 상대 경로가 아닌 절대 경로로 아카이브되었음을 나타냅니다. 따라서 Pax는 기본적으로 이를 정확히 동일한 경로, 즉 루트에 추출합니다. Pax에는 단순히 '지정된 디렉터리로 추출' 옵션이 없는 것 같습니다. 따라서 추출되는 파일 이름을 즉시 변경하려면 -s 옵션을 사용해야 합니다. 이 경우 앞의 '/'를 '/usr/lpp/sel/selcopy'로 변경하고 싶습니다.

-s [^/[/usr/lpp/sel/selcopy/[

pax에서는 표현을 단순화하기 위해 '/' 이외의 구분 기호를 사용할 수 있다는 사실을 활용합니다. 이는 아카이브의 내용을 나열하는 경우에도 작동하므로 실제로 수행하기 전에 대체 내용을 테스트할 수 있습니다.

관련 정보