刚了解到cpio有copy-out、copy-in和pass-through三种模式。
我想知道cpio在copy-out和copy-in模式下比tar有什么优缺点。什么时候使用 cpio 什么时候使用 tar 更好?
cpio under pass-through mode vs cp 的类似问题。
谢谢和问候!
最佳答案
除了通过 disrpm 翻录打开的 RPM 文件外,我看不出有任何理由使用 cpio。或 rpm2cpio ,但可能存在 cpio 优于 tar 的极端情况。
历史和知名度
两者都是tar和 cpio是在 Version 7 Unix 中引入的竞争存档格式1979 年,然后包含在 POSIX 中.1-1988,尽管在下一个标准 POSIX.1-2001 1 中只剩下 tar .
Cpio 的文件格式已经改变了好几次并且在版本之间没有保持完全兼容。例如,现在有二进制文件信息数据的 ASCII 编码表示。
Tar 更广为人知,多年来变得更加通用,并且更有可能在给定系统上得到支持。 Cpio 仍在少数区域使用,例如 Red Hat package格式 (RPM),尽管 RPM v5 (这无疑是晦涩的)使用 xar而不是 cpio。
两者都存在于大多数类 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)
模式
Copy-out:这是用于存档创建,类似于 tar -pc
Copy-in:这是用于存档提取,类似于 tar -px
直通:这基本上是以上两者,类似于 tar -pc … |tar -px
但在单个命令中(因此在微观上更快) .它类似于 cp -pdr
,尽管 cpio 和(尤其是)tar 都具有更多的可定制性。还要考虑 rsync -a
,人们经常忘记它,因为它更常用于网络连接。
我没有比较它们的性能,但我预计它们在 CPU、内存和存档大小(压缩后)方面会非常相似。
关于bash - cpio VS tar 和 cp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2966409/