.tar vs .tgz ...有什么区别?

wvm*_*008 4 command-line tar

所以我只是归档了电子邮件提交的作业,并且教师要求使用tar命令执行此操作并创建.tgz文件,我使用以下命令行脚本执行此操作:

tar -cvf filename.tgz {main.cpp other filenames here}
Run Code Online (Sandbox Code Playgroud)

存档上没有任何问题或任何问题,但当我去发送文件时,gmail阻止我说我的文件包含一个可执行文件(我假设是main.cpp?),并且出于安全原因这是不允许的.

所以,我运行了相同的脚本,但这次创建了一个.tar文件,如下所示:

tar -cvf filename.tar {main.cpp filenames here}
Run Code Online (Sandbox Code Playgroud)

再次,档案很好,但现在gmail与我通过电子邮件发送档案很好.那么区别是什么呢?我只是为了这个目的而真正使用了tar,所以我并不熟悉使用不同的扩展.显然,我已经想出了一种获得我需要的功能的方法,但就像所有修补匠一样,我很好奇.

怎么说你?

Car*_*rum 10

绝对没有区别.文件名只是一个文件名. 通常,当您使用tgz表单时,它表示您已经压缩了tar文件(作为第二步或使用z标志):

tar zcvf filename.tgz {filenames}
Run Code Online (Sandbox Code Playgroud)

要么

tar cvf filename {filenames}
gzip -S .tgz filename
Run Code Online (Sandbox Code Playgroud)

.tar另一方面,通常意味着"这是一个未压缩的 tar文件":

tar cvf filename.tar {filenames}
Run Code Online (Sandbox Code Playgroud)

大多数现代tar实现也支持j使用bzip2压缩的标志,因此您也可以使用:

tar jcvf filename.tar.bz2 {filenames}
Run Code Online (Sandbox Code Playgroud)