如何從 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 允許使用「/」以外的分隔符號來簡化表達式的事實。當僅列出存檔的內容時,這也適用,因此您可以在實際執行之前測試您的替換。

相關內容