关闭。这个问题是off-topic .它目前不接受答案。
想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。
8年前关闭。
Improve this question
所以我只是为电子邮件提交归档作业,并被讲师要求使用 tar 命令执行此操作并创建一个 .tgz 文件,我使用以下命令行脚本执行此操作:
tar -cvf filename.tgz {main.cpp other filenames here}
存档或任何问题都没有问题,但是当我通过电子邮件发送文件时,gmail 阻止我说我的文件包含一个可执行文件(我假设是 main.cpp?),并且出于安全原因不允许这样做。
所以,我运行了相同的脚本,但这次创建了一个 .tar 文件,如下所示:
tar -cvf filename.tar {main.cpp filenames here}
同样,文件很好,但现在 gmail 可以让我通过电子邮件发送文件。那么区别是什么呢?我只是为此目的真正使用了 tar,所以我不太熟悉不同扩展的用途。显然,我已经找到了一种方法来获得我需要的功能,但是像所有的修补匠一样,我很好奇。
你说什么?
最佳答案
绝对没有区别。文件名只是一个文件名。通常,当您使用 tgz
时形式,它表明您已经 gzip tar 文件(作为第二步或使用 z
标志):
tar zcvf filename.tgz {filenames}
或者
tar cvf filename {filenames}
gzip -S .tgz filename
.tar
,另一方面,通常表示“这是一个未压缩的 tar 文件”:tar cvf filename.tar {filenames}
大多数现代 tar 实现也支持
j
要使用的标志 bzip2
压缩,所以你也可以使用:tar jcvf filename.tar.bz2 {filenames}
关于command-line - .tar 与 .tgz...有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16198087/