linux 文件壓縮格式詳解
壓縮文件原理
在計算機(jī)科學(xué)和信息論中紧显,數(shù)據(jù)壓縮或者源編碼是按照特定的編碼機(jī)制用比未經(jīng)編碼少的數(shù)據(jù)比特(或者其它信息相關(guān)的單位)表示信息的過程膘滨。例如驹吮,如果我們將“compression”編碼為“comp”那么這篇文章可以用較少的數(shù)據(jù)位表示逢并。常見的例子是ZIP文件格式,此格式不僅僅提供壓縮功能夫椭,還可作為歸檔工具(Archiver)鸦致,能夠?qū)⒃S多文件存儲到同一個文件中坑填。
簡單的說双戳,就是經(jīng)過壓縮軟件壓縮的文件叫壓縮文件虹蒋,壓縮的原理是把文件的二進(jìn)制代碼壓縮,把相鄰的0,1代碼減少飒货,比如有000000,可以把它變成6個0 的寫法60,來減少該文件的空間。
壓縮文件的基本原理是查找文件內(nèi)的重復(fù)字節(jié),并建立一個相同字節(jié)的"詞典"文件,并用一個代碼表示,比如在文件里有幾處有一個相同的詞"中華人民共和國"用一個代碼表示并寫入"詞典"文件,這樣就可以達(dá)到縮小文件的目的峭竣。
常見的壓縮格式
- zip
ZIP文件格式是一種數(shù)據(jù)壓縮和文檔儲存的文件格式塘辅,原名Deflate,發(fā)明者為菲爾·卡茨(Phil Katz)皆撩,他于1989年1月公布了該格式的資料扣墩。ZIP通常使用后綴名“.zip”哲银,它的MIME格式為application/zip。當(dāng)前呻惕,ZIP格式屬于幾種主流的壓縮格式之一荆责,其競爭者包括RAR格式以及開放源碼的7z格式。從性能上比較亚脆,RAR及7z格式較ZIP格式壓縮率較高做院,而7-Zip由于提供了免費(fèi)的壓縮工具而逐漸在更多的領(lǐng)域得到應(yīng)用。Microsoft從Windows ME操作系統(tǒng)開始內(nèi)置對zip格式的支持濒持,即使用戶的計算機(jī)上沒有安裝解壓縮軟件键耕,也能打開和制作zip格式的壓縮文件,OS X和流行的Linux操作系統(tǒng)也對zip格式提供了類似的支持柑营。因此如果在網(wǎng)絡(luò)上傳播和分發(fā)文件屈雄,zip格式往往是最常用的選擇。
- gzip
Gzip是若干種文件壓縮程序的簡稱官套,通常指GNU計劃的實現(xiàn)酒奶,此處的gzip代表GNU zip。也經(jīng)常用來表示gzip這種文件格式奶赔。軟件的作者是Jean-loup Gailly和Mark Adler讥蟆。在1992年10月31日第一次公開發(fā)布,版本號0.1纺阔,1993年2月瘸彤,發(fā)布了1.0版本
- bzip2
bzip2是Julian Seward開發(fā)并按照自由軟件/開源軟件協(xié)議發(fā)布的數(shù)據(jù)壓縮算法及程序。Seward在1996年7月第一次公開發(fā)布了bzip2 0.15版笛钝,在隨后幾年中這個壓縮工具穩(wěn)定性得到改善并且日漸流行质况,Seward在2000年晚些時候發(fā)布了1.0版。
- 7z
在計算機(jī)科學(xué)中玻靡,7z是一種可以使用多種壓縮算法進(jìn)行數(shù)據(jù)壓縮的文件格式结榄。該格式最初被7-Zip實現(xiàn)并采用,但是這種文件格式是公有的囤捻,并且7-Zip軟件本身亦在GNU寬通用公共許可證 (GNU LGPL)協(xié)議下開放源代碼臼朗。當(dāng)前LZMA軟件開發(fā)工具包的最新版本為v15.12。
- rar
RAR是一種專利文件格式蝎土,用于數(shù)據(jù)壓縮與歸檔打包视哑,開發(fā)者為尤金·羅謝爾(俄語:Евгений Лазаревич Рошал,拉丁轉(zhuǎn)寫:Yevgeny Lazarevich Roshal)誊涯,RAR的全名是“Roshal ARchive”挡毅,即“羅謝爾的歸檔”之意。首個公開版本RAR 1.3發(fā)布于1993年暴构。
尤金·羅謝爾跪呈,1972年3月10日生于俄羅斯段磨。畢業(yè)于俄羅斯車?yán)镅刨e斯克工業(yè)大學(xué)(Chelyabinsk Technical University,今南烏拉州立大學(xué))耗绿,也是FAR文件管理器的作者苹支。他開發(fā)程序壓縮或解壓RAR文件,最初用于DOS误阻,后來移植到其它平臺债蜜。主要的Windows版本編碼器,稱為WinRAR堕绩,以共享軟件的形式發(fā)行策幼。不過羅謝爾公開了解碼器源碼,UnRAR解碼器許可證以不許發(fā)布編譯RAR兼容編碼器為條件下允許有條件自由發(fā)布與修改奴紧,而RAR編碼器一直是有專利的特姐。
最近的開發(fā)者是尤金·羅謝爾的胞兄亞歷山大·羅謝爾。雖然其解碼器有專利黍氮,編譯好的解壓程序仍然存在于若干平臺唐含,例如開源的7-Zip。
常見的壓縮文件壓縮和解壓縮
文件后綴名 | 說明 | 壓縮 | 解壓縮 |
---|---|---|---|
*.zip | zip 程序打包壓縮的文件 | zip fileName.zip dirName | unzip fileName.zip |
*.rar | rar 程序壓縮的文件 | rar a fileName.rar dirName | rar x fileName.rar |
*.7z | 7zip 程序壓縮的文件 | 7z a fileName.7z dirName | 7z x fileName.7z |
*.tar | tar 程序打包沫浆,未壓縮的文件 | tar cvf fileName.tar dirName | tar xvf fileName.tar |
*.gz | gzip 程序 (GNU zip) 壓縮的文件 | gzip fileName | gzip -d fileName.gz |
*.bz2 | tar 打包捷枯,gzip 程序壓縮的文件 | bzip2 -z FileName | bzip2 -d FileName.bz2 |
*.tar.gz | tar打包,gzip程序壓縮的文件 | tar zcvf FileName.tar.gz dirName | tar zxvf FileName.tar.gz |
*.tar.xz | tar打包专执,xz程序壓縮的文件 | tar cvJf fileName.tar.xz dirName | tar -xvJf fileName.tar.xz |
*.tar.bz2 | tar打包淮捆,bzip2程序壓縮的文件 | tar jcvf FileName.tar.bz2 dirName | tar jxvf FileName.tar.bz2 |
*.Z | compress命令解壓縮rar文件 | compress fileName | uncompress fileName.Z |