我刚刚读到tar
可以创建.tar.bz2
文件。一直以来,我都是使用tar
+bzip2
来执行此操作。
tar
我想知道使用创建档案和使用之间是否存在区别bzip2
?
另外,为什么有两件东西可以做同样的事情?
谢谢!
答案1
GNU tar 支持 --bzip2 选项,该选项允许您在将结果文件写入磁盘之前通过 bzip2 流式传输 tar 文件。命令行选项支持的所有 tar 压缩都针对流式传输数据块进行操作,这在一般情况下并不重要,但即使使用相同的算法,外部压缩也可能能够提供更好的压缩效果。
例如,使用 --bzip2 会使用预定义的压缩级别,而在未压缩的 tarball 上运行 bzip2 则可以让您调整各种压缩参数,并可能实现更严格的压缩。此外,可以使用整个 tarball 作为输入的操作可能能够利用通过流式传输提供的标准大小块以外的压缩机会。一个很好的例子是压缩,它可以利用整个 tar 存档中的冗余,而不仅仅是当前数据块内的冗余。
除非空间非常紧张,否则通常最好使用内置压缩选项以简化操作。内置选项提供了高度的便利性,并在速度和压缩之间进行了合理的权衡。但是,您的情况可能会有所不同。
答案2
我想知道使用 tar 创建档案和使用 bzip2 之间是否存在区别?
Bzip2 是一个压缩工具...而且是一个非常好的压缩工具。
tar 是一个归档(存储)工具......也许是最成功和最强大的工具。
另外,为什么有两件东西可以做同样的事情?
嗯,tar 早于 bzip,我认为甚至早于原始 zip。
他们只是在某些有限的情况下做“同样的事情”。
也许您还没有完全理解 tar 的含义?
Tar 用于归档(磁带归档器),它的作用远不止压缩一堆文件。
<quote man page>
DESCRIPTION
Tar stores and extracts files from a tape or disk archive.
</quote>
因此,您可以添加、提取、删除和更新档案的内容。(在许多情况下无需解压)
这是一个经典的工具,诞生于遥远的英雄时代,当时 64K 内存意味着很多,流媒体(逐个字符)的存储是一种常态。(就像磁带一样)。
tar 可以执行诸如指示某些(名义上是人类)操作员更换磁带或将卷轴向前/向后移动到多米“磁带”上的正确范围和位置等操作。
所有这些功能仍然有用,即使实际硬件早已消失,这些概念仍然有用。尤其是在备份领域。
一般来说它知道结构和存档文件系统的状态,并且可以像真实的实时文件系统一样对其进行更改或读取。(当然,它只是被压缩、记录/注册并存放在某个地方)
同步具有它的一些(许多)功能,并采用了巧妙的差异算法。
另请参阅 pax。
Bzip 是一款出色的工具,最多案例的压缩效果比 zip/gzip 更好。
作为通用压缩工具,它高效且非常强大。它的重点是压缩。
随着时间的推移,压缩文件开始被称为档案,因为它们大多数都有一个共同点。
哦,最后,tar 也具有原生基本(可解卷)压缩。您可以使用 -z 或 -j 开关来选择使用该特定压缩算法。(嗯,或者也许也一样?)
点击 gzip tar bzip2 pax rsync 的手册页:)
只需滚动浏览 tar 文档就应该能给你提供这个想法。
答案3
tar cf - 文件 fiel 文件 dir cat list
| 压缩 > file.tar.Z 压缩 -d file.tar.Z | tar tvf -
您可以根据自己的选择,用 gzip、bzip2、lzop 替换 compress。
在列出时,将最后一个命令中的 v 替换为 x 以提取文件。