Gzipped 档案 - 使用 tar -czf 创建并仅使用 -xf 提取?

Gzipped 档案 - 使用 tar -czf 创建并仅使用 -xf 提取?

假设我有file.txt一行包含:

strawberry

使用

tar -czf archive.tar.gz file.txt

我可以创建一个名称为“gzipped archive”的文件archive.tar.gz,据我所知,这相当于做

tar -cf archive.tar file.txt
gzip archive.tar

现在,要提取archive.tar.gz,我会使用

tar -xzf archive.tar.gz

得到我的file.txt.这应该相当于做

gzip -d archive.tar.gz
tar -xf archive.tar

但是,如果我只使用命令

tar -xf archive.tar.gz

无需先解压缩文件gzip--gziptar 中的选项,我仍然获取我的file.txt并可以阅读内容。

我将文件结尾从 更改archive.tar.gz为 justarchive.tar并得到了相同的结果。

鉴于用户可以更改文件结尾,tar 如何知道它必须首先解压缩文件?我是否错过了一些有关文件存储的基本知识,使 tar 能够注意到压缩?

答案1

tl;dr - GNUtar很聪明

在过去美好或糟糕的日子里,你必须完全按照你所说的去做和使用-xzf。现在,tar打开存档,快速浏览一下,如果内容看起来是压缩的,那么它会自动为您调用解压缩。就是这样。你可以看一下man tar它支持哪些压缩算法。

相关内容