2013-04-24 147 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

相關問題