Macで作成されたcpioファイル内の./で始まるファイル名

Macで作成されたcpioファイル内の./で始まるファイル名

Mac を使って Linux で使用する cpio ファイルを作成したいと思います。Mac で作成されたファイル名は「./name」のようです。Linux で cpio が作成されると、名前は「name」だけになります。使用する必要があるソフトウェアでは、これに問題があるため、質問があります。「./」プレフィックスを取り除くために使用できるフラグなどはありますか? それ以外は問題なく動作するようです。

答え1

cpio アーカイブを作成するために使用しているコマンドを確認すると興味深いでしょう。リストを生成するために find を使用していると思われますが、その違いはおそらく BSD find と GNU find がそれぞれの結果リストを出力する方法によるものと思われます。

いずれの場合でも、find と cpio の間に sed コマンドを挿入してファイル名の先頭の ./ を削除することで、この問題を回避できる可能性があります。次に例を示します。

find folder | sed 's,^\./,,' | cpio -ov >/tmp/test.cpio

いずれにしても、cpio 形式にはさまざまな制限があり、現代のシステムではアーカイブとしてはあまり適していません。したがって、pax アーカイブを作成するには、GNU tar または BSD tar を使用する方がよいでしょう。たとえば、次のようになります。

bsdtar --format=pax -cvf /tmp/test.tar folder

関連情報