tar 实际上是压缩文件,还是只是将它们分组在一起?

tar 实际上是压缩文件,还是只是将它们分组在一起?

我通常认为这tar是一个压缩实用程序,但我不确定它是否真的压缩文件,或者它只是像 ISO 文件一样,是一个保存文件的文件?

答案1

Tar 是一种归档工具(Tape ARchive),它仅将文件及其元数据收集在一起并生成一个文件。如果您想稍后压缩该文件,可以使用 gzip/bzip2/xz。为了方便起见,tar 提供了自动为您压缩存档的参数。结帐tar 手册页更多细节。

答案2

tar制作档案;压缩是一个单独的功能。然而 tar当用于大量小于文件系统簇大小的小文件时,单独使用可以减少空间使用量。如果文件系统使用 1kb 簇,则即使包含单个字节的文件也会消耗 1kb(加上 inode)。存档tar没有这种开销。

顺便说一句,ISO 文件并不是真正的“保存文件的文件”——它实际上是整个文件系统的映像(最初设计用于 CD 上),因此其结构要复杂得多。

答案3

原始 UNIX tar 命令不压缩档案。正如评论中提到的,Solaris tar 不压缩。 HP-UX、AIX、FWIW 也没有。按照惯例,未压缩的档案以.tar.

使用 GNU/Linux,您可以获得 GNU tar。 (您可以在其他 UNIX 系统上安装 GNU tar。)默认情况下,它不压缩;然而,它如果您提供 .gzip 文件,则使用 gzip(也由 GNU)压缩生成的存档-z。 gzip 压缩文件的常规后缀是.gz,因此您经常会看到以.tar.gz.该结尾意味着运行了 tar,然后运行了 gzip,例如tar cf - .|gzip -9v > archive.tar.gz。您还可以找到以 结尾的档案.tgz,例如tar czf archive.tgz .

编辑: www.linfo.org/tar.html让我想起 GNU tar 支持的功能远多于仅仅使用 gzip 压缩,并且它提醒我后缀不仅仅是简单的约定。它们具有内置的语义。它还支持 bzip2 ( -jfor .bz2) 和旧压缩 ( -Zfor .Z)。然后我查看了手册页,并被提醒-a根据后缀自动映射您所需的压缩方法。

又一个尼特。正如 Linux tar 手册页所述,GNU 生成信息页,而不是手册页,因此要了解有关 GNU tar 的所有信息,请运行info tar.

答案4

tar 实用程序不会压缩,直到您给出执行此操作的参数 [tar -z 文件名]。

相关内容