我刚刚了解到cpio具有三种模式:复制,复制和传递。

我想知道cpio在复制和复制模式下比tar有什么优缺点。什么时候使用cpio更好,什么时候使用tar?

传递模式下相对于cpio的cpio的类似问题。

感谢致敬!

最佳答案

除了通过disrpmrpm2cpio翻录打开的RPM文件外,我认为没有任何理由使用cpio,但是在某些情况下cpio比tar更可取。

历史和知名度

tarcpio都是竞争性存档格式,于1979年在Version 7 Unix中引入,然后包含在POSIX .1-1988中,尽管只有tar保留在下一个标准POSIX.1-2001 1中。

Cpio的文件格式已更改了数次,并且在各个版本之间仍未完全兼容。例如,现在有了二进制文件信息数据的ASCII编码表示。

Tar是更广为人知的,多年来已经变得更加通用,并且更可能在给定的系统上得到支持。尽管Red Hat package(虽然是晦涩的)使用RPM v5而不是cpio,但在某些领域仍使用cpio,例如xar格式(RPM)。

两者都生活在大多数类Unix系统上,尽管tar更常见。这是Debian's install stats:

#rank  name    inst    vote    old  recent  no-files  (maintainer)
   13   tar  189206  172133   3707   13298        68  (Bdale Garbee)
   61  cpio  189028   71664  96346   20920        98  (Anibal Monsalve Salazar)

模式

复制出:这是用于创建存档,类似于tar -pc
副本:这是用于存档提取,类似于tar -px
传递:与tar -pc … |tar -px类似,但基本上都是以上两种,但都在单个命令中(因此在微观上更快)。它类似于cp -pdr,尽管cpio和(尤其是tar)都具有更高的可定制性。还要考虑rsync -a,人们通常会忘记它,因为它通常在网络连接中使用。

我没有比较它们的性能,但是我希望它们在CPU,内存和归档大小(压缩后)方面会非常相似。

09-03 23:30