linux常見壓縮格式詳解

linux 文件壓縮格式詳解

壓縮文件原理

在計算機科學(xué)和信息論中,數(shù)據(jù)壓縮或者源編碼是按照特定的編碼機制用比未經(jīng)編碼少的數(shù)據(jù)比特(或者其它信息相關(guān)的單位)表示信息的過程。例如,如果我們將“compression”編碼為“comp”那么這篇文章可以用較少的數(shù)據(jù)位表示。常見的例子是ZIP文件格式,此格式不僅僅提供壓縮功能,還可作為歸檔工具(Archiver),能夠?qū)⒃S多文件存儲到同一個文件中。

簡單的說,就是經(jīng)過壓縮軟件壓縮的文件叫壓縮文件,壓縮的原理是把文件的二進制代碼壓縮,把相鄰的0,1代碼減少,比如有000000,可以把它變成6個0 的寫法60,來減少該文件的空間。
壓縮文件的基本原理是查找文件內(nèi)的重復(fù)字節(jié),并建立一個相同字節(jié)的"詞典"文件,并用一個代碼表示,比如在文件里有幾處有一個相同的詞"中華人民共和國"用一個代碼表示并寫入"詞典"文件,這樣就可以達到縮小文件的目的。

常見的壓縮格式

  • zip

ZIP文件格式是一種數(shù)據(jù)壓縮和文檔儲存的文件格式,原名Deflate,發(fā)明者為菲爾·卡茨(Phil Katz),他于1989年1月公布了該格式的資料。ZIP通常使用后綴名“.zip”,它的MIME格式為application/zip。當前,ZIP格式屬于幾種主流的壓縮格式之一,其競爭者包括RAR格式以及開放源碼的7z格式。從性能上比較,RAR及7z格式較ZIP格式壓縮率較高,而7-Zip由于提供了免費的壓縮工具而逐漸在更多的領(lǐng)域得到應(yīng)用。Microsoft從Windows ME操作系統(tǒng)開始內(nèi)置對zip格式的支持,即使用戶的計算機上沒有安裝解壓縮軟件,也能打開和制作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

在計算機科學(xué)中,7z是一種可以使用多種壓縮算法進行數(shù)據(jù)壓縮的文件格式。該格式最初被7-Zip實現(xiàn)并采用,但是這種文件格式是公有的,并且7-Zip軟件本身亦在GNU寬通用公共許可證 (GNU LGPL)協(xié)議下開放源代碼。當前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è)大學(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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容