web-dev-qa-db-ja.com

CPIOはプラットフォームに依存するアーカイブを作成しますか?

Solaris 11(SPARC)で次のコマンドを使用してCPIOアーカイブを作成しました。

 find .  | cpio -ov >/tmp/myarchive.cpio

IntelベースのSolaris11マシンにコピーし、次のコマンドを使用して抽出しようとしました

cpio -icvdu < myarchive.cpio

次のエラーが発生します。

cpio: Not a cpio file, bad header.
1 errors

MD5SUMハッシュが一致し、別のSPARCマシンで抽出できます。

私の質問ですが、CPIOはプラットフォームに依存する出力を生成しますか?それを変換する方法はありますか?

アーカイブしているディレクトリにTARコマンドでスキップされる長いシンボリックリンクがあるため、現時点ではTARを使用できません。

1
TiCL

引用されたコマンドが正しくコピーされて貼り付けられている場合、これはフラグの選択の間違いのようです-「-c」オプションを使用してアーカイブを作成していません(ASCIIポータブル形式を使用) )しかし、アーカイブを読み取るためにその形式を期待するように指示しています。

3
alanc

アーカイブの作成中にGNU CPIOと-c(古いASCIIポータブル形式を使用)オプションを使用)を使用して問題を解決しました。-cオプションも想定しています。 SolarisCPIOで動作します。

1
TiCL