使用 mac 建立的 cpio 檔案中以 ./ 表示的檔案名

使用 mac 建立的 cpio 檔案中以 ./ 表示的檔案名

我想使用我的 mac 建立 cpio 檔案以在 linux 中使用。在 mac 中建立時,檔案名稱似乎是「./name」。當 cpio 在 Linux 中建立時,名稱只是「name」。我需要使用的軟體有一些問題,所以我的問題是:是否有任何標誌或其他東西可以用來擺脫“./”前綴?否則他們似乎工作正常。

答案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

相關內容