2 回答

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用,這是不可能的.tar.gz
,這就是原因。
為了創(chuàng)建.tar.gz
文件,您必須tar
先創(chuàng)建單個(gè).tar
文件,然后再創(chuàng)建gzip
結(jié)果。
.tar
可以在不讀取整個(gè)內(nèi)容的情況下掃描文件,但只有在tar
歸檔成員相對(duì)較大的情況下,它才能很好地工作。這是因?yàn)?code>tar沒(méi)有任何標(biāo)頭在一個(gè)緊湊的位置列出所有成員。每個(gè)存檔成員都有512字節(jié)的描述符,比顯示下一個(gè)描述符的位置還要多。使用大型歸檔成員,您可以相對(duì)快速地在磁盤(pán)上找到任意成員的內(nèi)容,但是您將不得不lseek()
多次。
但是,一旦您gzip
在上進(jìn)行了應(yīng)用.tar
,從根本上來(lái)說(shuō),就不可能迅速獲得存檔中所有成員的列表,而實(shí)際上無(wú)法解壓縮其內(nèi)容的可能性就大大降低了。您甚至不得不解壓縮整個(gè)存檔,甚至只是簡(jiǎn)單地獲取其所有成員的列表。
請(qǐng)注意,流行.tar.bz2
或.tar.xz
格式存在完全相同的問(wèn)題。
您可以使用zip
格式對(duì)其進(jìn)行修復(fù)。zip
之所以具有.tar.gz
更大的優(yōu)勢(shì),是因?yàn)樗_實(shí)具有緊湊的索引,該索引在一個(gè)位置列出了所有存檔成員,并且它允許快速讀取該列表并僅提取您需要的文件,而不必提取(壓縮).tar.gz
遭受苦難的整個(gè)存檔。
添加回答
舉報(bào)