如何从 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 允许使用除“/”之外的分隔符来简化表达式。这在仅列出档案内容时也有效,因此您可以在实际执行替换之前测试替换。

相关内容