使用 mac 创建的 cpio 文件中的文件名以 ./ 开头

使用 mac 创建的 cpio 文件中的文件名以 ./ 开头

我想使用我的 mac 创建 cpio 文件以在 linux 中使用。在 mac 中创建的文件名似乎是“./name”。在 linux 中创建的 cpio 名称只是“name”。我需要使用的 sw 在这方面存在一些问题,所以我的问题是:是否有任何标志或其他东西可以用来摆脱“./”前缀?否则它们似乎可以正常工作。

答案1

看看您用来创建 cpio 档案的命令会很有趣。我怀疑您使用 find 来生成列表,而差异可能是由于 BSD find 和 GNU find 打印其各自结果列表的方式造成的。

无论如何,您都可以通过在 find 和 cpio 之间插入 sed 命令来解决这个问题,以从文件名前面删除 ./,例如:

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

无论如何,cpio 格式有各种限制,使其不太适合在现代系统上用作档案。因此,您最好使用 GNU tar 或 BSD tar 来创建 pax 档案,例如:

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

相关内容