2013-04-24 208 views
2

所以我只是存档的电子邮件提交的任务,并要求由导师这么做使用tar命令,并创建一个.tgz的文件,我用下面的命令行脚本做:.tar vs .tgz ...有什么区别?

tar -cvf filename.tgz {main.cpp other filenames here} 

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

所以,我跑了相同的脚本,但这次创建一个.tar文件,而不是像这样:

tar -cvf filename.tar {main.cpp filenames here} 

再次,档案就好了,但现在Gmail是罚款与我电子邮件存档。那么区别是什么呢?我只是真的用tar来达到这个目的,所以我并不十分熟悉不同的扩展是如何使用的。显然,我已经想出了一种获得我需要的功能的方法,但是像所有的修饰者一样,我很好奇。

你说什么?

+0

嗯,看完之后[这](http://support.google.com/mail/answer/ 6590?hl = en),看起来gmail支持.tgz,但在你的情况下.tgz文件是未压缩的。我想gmail试图对它进行gunzip,失败了,并决定玩安全并阻止文件。 – gatto 2013-04-24 17:26:34

回答

8

绝对没有区别。文件名只是一个文件名。 通常,当您使用tgz形式,它以表明您已经gzip压缩的tar文件(作为第二个步骤或使用z标志):

tar zcvf filename.tgz {filenames} 

tar cvf filename {filenames} 
gzip -S .tgz filename 

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

tar cvf filename.tar {filenames} 

大多数现代焦油的实现也支持j标志使用bzip2压缩,所以你也可以使用:

tar jcvf filename.tar.bz2 {filenames} 
+0

在这里要更清楚一点,在Linux文件扩展名对操作系统级别没有影响。扩展只用于应用程序级别(如使用vim)或人为约定。在技​​术上使用.tar在操作系统级别上没有影响,但对于试图使用该文件的用户可能会感到困惑。 – Swiss 2013-04-24 17:11:55

+1

+1 @Swiss。这就是为什么存在['file(1)'](http://www.manpagez.com/man/1/file/)。 – 2013-04-24 17:13:08

+0

另外,我会建议不要使用bzip。它产生的档案略小(约10%),但运行时间只有10倍到100倍。节省的小空间不值得花时间折衷。 – Swiss 2013-04-24 17:13:45

相关问题