我刚刚了解到cpio具有三种模式:复制,复制和传递。
我想知道cpio在复制和复制模式下比tar有什么优缺点。什么时候使用cpio更好,什么时候使用tar?
传递模式下相对于cpio的cpio的类似问题。
感谢致敬!
最佳答案
除了通过disrpm或rpm2cpio翻录打开的RPM文件外,我认为没有任何理由使用cpio,但是在某些情况下cpio比tar更可取。
历史和知名度
tar和cpio都是竞争性存档格式,于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,内存和归档大小(压缩后)方面会非常相似。