我在 Solaris 11 (SPARC) 上使用以下命令创建了一个 CPIO 存档:
find . | cpio -ov >/tmp/myarchive.cpio
我将其复制到基于 Intel 的 Solaris 11 机器上,并尝试使用以下命令进行提取
cpio -icvdu < myarchive.cpio
它给了我以下错误:
cpio: Not a cpio file, bad header.
1 errors
MD5SUM 哈希匹配,我可以在另一台 SPARC 机器上提取它。
我的问题是,CPIO 是否会产生与平台相关的输出?有什么方法可以转换它吗?
我目前无法使用 TAR,因为我正在存档的目录有很长的符号链接,而 TAR 命令会跳过这些链接
答案1
如果引用的命令被正确复制和粘贴,这似乎是标志选择的一个错误 - 您没有使用“-c”选项创建档案(使用 ASCII 可移植格式),但您告诉它期望使用该格式来读取档案。
答案2
我在创建存档时使用 GNU CPIO 和 -c(使用旧 ASCII 可移植格式)选项解决了这个问题。我认为 -c 选项也适用于 Solaris CPIO。