假设我有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
或--gzip
tar 中的选项,我仍然获取我的file.txt
并可以阅读内容。
我将文件结尾从 更改archive.tar.gz
为 justarchive.tar
并得到了相同的结果。
鉴于用户可以更改文件结尾,tar 如何知道它必须首先解压缩文件?我是否错过了一些有关文件存储的基本知识,使 tar 能够注意到压缩?
答案1
tl;dr - GNUtar
很聪明
在过去美好或糟糕的日子里,你必须完全按照你所说的去做和使用-xzf
。现在,tar
打开存档,快速浏览一下,如果内容看起来是压缩的,那么它会自动为您调用解压缩。就是这样。你可以看一下man tar
它支持哪些压缩算法。