gzip
gzip是一種壓縮文件格式並且也是一個在類 Unix 上的一種文件解壓縮的軟件,通常指GNU計劃的實現,此處的gzip代表GNU zip。也經常用來表示gzip這種文件格式。軟件的作者是Jean-loup Gailly和Mark Adler。在1992年10月31日第一次公開發布,版本號0.1,1993年2月,發布了1.0版本。
原作者 | |
---|---|
開發者 | GNU計劃 |
首次發布 | 1992年10月31日 |
當前版本 |
|
源代碼庫 | git |
編程語言 | C |
操作系統 | Unix-like |
類型 | 數據壓縮 |
許可協議 | GNU GPLv3 |
網站 | www |
開發者 | NetBSD基金會 |
---|---|
源代碼庫 | |
編程語言 | C |
操作系統 | 跨平台 |
類型 | 數據壓縮 |
許可協議 | BSD許可證 |
網站 | www |
OpenBSD中所包含的gzip版本實際上是compress程序,其對gzip文件的支持在OpenBSD 3.4中被添加,此處的g代表免費(gratis)[2]。
文件格式
副檔名 |
.gz |
---|---|
網路媒體型式 |
application/gzip[3] |
統一類型標識 | org.gnu.gnu-zip-archive |
開發者 | Jean-Loup Gailly and Mark Adler |
格式類型 | 數據壓縮 |
免費格式? | 是 |
網站 | http://www.gzip.org/ |
gzip的基礎是DEFLATE,DEFLATE是LZ77與哈夫曼編碼的一個組合體。DEFLATE最初是作為LZW以及其它受專利保護的數據壓縮算法的替代版本而設計的,當時那些專利限制了compress以及其它一些流行的歸檔工具的應用。
文件格式說明:
儘管這種文件格式允許多個這樣的數據拼接在一起,在解壓時也能認出它們是拼接在一起的數據,但通常gzip僅用來壓縮單個文件。多個文件的壓縮歸檔通常是首先將這些文件合併成一個tar文件,然後再使用gzip進行壓縮,最後生成的.tar.gz或者.tgz文件就是所謂的「tar壓縮包」或者「tarball」。
注意不要將gzip和ZIP壓縮格式混淆。ZIP也使用DEFLATE算法,而且可移植性更好,不需要一個外部的歸檔工具就可以包容多個文件。但是,由於ZIP對每個文件進行單獨壓縮而沒有利用文件間的冗餘信息(即固實壓縮),所以ZIP的壓縮率會稍遜於tar壓縮包。
gzip命令的常用選項
- -c,--stdout將解壓縮的內容輸出到標準輸出,原文件保持不變
- -d,--decompress解壓縮
- -f,--force強制覆蓋舊文件
- -l,--list列出壓縮包內儲存的原始文件的信息(如,解壓後的名字、壓縮率等)
- -n,--no-name壓縮時不保存原始文件的文件名和時間戳,解壓縮時不恢復原始文件的文件名和時間戳(此時,解出來的文件,其文件名為壓縮包的文件名)
- -N,--name壓縮時保存原始文件的文件名和時間戳,解壓縮時恢復原始文件的文件名和時間戳
- -q,--quiet抑制所有警告信息
- -r,--recursive遞歸
- -t,--test測試壓縮文件完整性
- -v,--verbose冗餘模式(即顯示每一步的執行內容)
- -1、-2、...、-9壓縮率依次增大,速度依次減慢,默認為-6
衍生品和其它應用
在大多數Linux發行版中,通過使用 zx 選項來提取.tar.gz格式的壓縮文件,例如:tar -zxf file.tar.gz。
zlib是DEFLATE算法的實現庫,它的API同時支持gzip文件格式以及一個簡化的數據流格式。zlib數據流格式、DEFLATE以及gzip文件格式均已被分別標準化為 RFC 1950、RFC 1951、RFC 1952。
gzip在HTTP壓縮 (頁面存檔備份,存於網際網路檔案館),一種在萬維網中加速傳輸HTML和其他內容的技術。它是在 RFC 2016 中規定的三種標準HTTP壓縮格式之一。這個RFC(徵求意見稿)頁定義了一種叫做"DEFLATE"的zlib格式,它和gzip格式相同,除了gzip添加了11字節頭部和尾部的負載。但是,現在還是建議使用gzip而不是zlib,因為根據 RFC 1950, IE(頁面存檔備份,存於網際網路檔案館)還沒有正確的實現該標準,還不能處理zlib格式。
zlib DEFLATE 已經在 Portable Network Graphics (頁面存檔備份,存於網際網路檔案館)(PNG)格式中使用。
自20世紀90年代末期以來,一個基於數據塊排序算法的文件壓縮工具bzip2作為gzip的替代者逐漸得到流行,它可以生成相當小的壓縮文件,尤其是對於源代碼和其他結構化文本更是這樣,但代價是最高達4倍的內存與處理器時間消耗。bzip2壓縮的tar包傳統上叫作.tar.bz2或.tbz。
AdvanceCOMP和7zip內部也有一個DEFLATE實現,可以製作gzip兼容的壓縮文件,與gzip相比有更高的壓縮率,不過比較耗費處理器的處理時間。
gzip壓縮文件對應的解壓程序是gunzip。
參見
參考資料
- ^ "gzip-1.13 released [stable"]; 作者姓名字符串: Jim Meyering; 出版日期: 2023年8月19日; 檢索日期: 2023年8月20日.
- ^ OpenBSD gzip(1) manual page. OpenBSD. [2007-07-23].
- ^ RFC 6713 - The 'application/zlib' and 'application/gzip' Media Types