bash - cpio VS tar 和 cp

标签 bash archive tar cp

刚了解到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 的极端情况。

历史和知名度

两者都是tarcpio是在 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/

相关文章:

bash - 使用具有各种引号级别和空格的变量构建命令字符串

ios - 何时设置用于归档 iOS 应用程序的调试配置?

c - 获取命令行的元素并将它们存储到数组中

Linux 使用权限解压文件

bash - 获取物理键盘布局

linux - 通过 SSH 将变量传递给远程脚本

linux - 当检测到特定输出时自动取消二进制执行

xcode - iOS : Making a build and archive command line tool

node.js - 从 tarball 构建镜像

python - 使用 Python 透明地挂载 tar.gz 存档