谁能告诉我这么多档案是怎么回事,它们有什么不同?
有至少五个,我能想到的是,.tar.tz
,.tar.gz
,.tar.bz2
,.tar.lz
,.tar.z
哪个最适合什么应用程序?对同一个文件进行如此多的变体似乎很愚蠢,但我相信这是有原因的。
Lek*_*eyn 19
的.gz
,.xz
,.bz2
,.7z
,.lz
,.z
后缀来明确该文件与所述压缩算法进行压缩。它的用途不仅限于.tar
文件,您还将看到诸如initrd.gz
(压缩的初始 ramdisk)或manual.txt.gz
(用于压缩文本文档)之类的文件。您可能还会看到file.tgz
这也表示 gzip 压缩的 tarball(如file.tar.gz
)。
文件扩展名是一种约定,它不一定描述文件内容。要检查您正在处理的文件类型,请使用该file
命令。例子:
$ file data.tar.gz
data.tar.gz: gzip compressed data, from Unix
$ gunzip -c data.tar.gz | file -
/dev/stdin: POSIX tar archive (GNU)
Run Code Online (Sandbox Code Playgroud)
根据我的经验,gzip 压缩文件 ( .gz
) 是最常见的文件。它的压缩和解压缩速度很快,尽管还有其他算法可以产生更好的压缩率。
除了@Lekensteyn 的回答之外,我想补充一点,这种行为基于“做一件事并做好”的哲学——tar
程序知道如何将多个文件放入一个流中(带.tar
扩展名),gzip
知道如何压缩一个单个文件(添加.gz
扩展名)*。通过组合这些工具,您可以创建一个将多个文件压缩为一个.tag.gz
文件的命令。
这种方法非常灵活——你可以结合一些标准的 Unix 命令来做各种各样的事情。例如,如果您编写了一个更好的程序来压缩文件,则不需要修改tar
以启用它来创建.tar.mymegazip
文件 - 相反,您只需将tar
的输出通过管道传输到您的压缩器。
同样,tar
对 SSH 一无所知,但是通过组合命令,您可以创建一个脚本来存档文件,通过 SSH 将它们上传到远程机器并在那里取消存档。
将此与zip
并非源自 Unix 的命令进行比较- 它具有内置工具来压缩整个目录、加密文件、将存档拆分为较小的 zip 文件等。
(脚注) - 是的,tar
可以使用-z
和-j
开关自行 gzip 或 bzip 文件,它们是为了方便而添加的,并且 GNU tar 实际上正在生成gzip
或bzip2
作为一个新进程。
归档时间: |
|
查看次数: |
2597 次 |
最近记录: |