Compression
為什麼 GZIP 實用程序關心擴展?
每當我需要解壓縮使用 Gzip 壓縮的文件時,我需要用
.gz
副檔名重命名文件,我嘗試了其他壓縮實用程序zip, bzip2
,他們似乎並不關心副檔名。為什麼會出現這種情況Gzip
,不只是檢查幻數來辨識文件類型或通過其他方式會很有用嗎?還是這樣是有目的的?
據我了解,一般的想法是你可以執行
gunzip *
它將使用文件副檔名作為第一個過濾器;如手冊頁中所述:
gunzip
在其命令行上獲取文件列表,並用沒有原始副檔名的未壓縮文件替換名稱以.gz
、-gz
、.z
、-z
或_z
(忽略大小寫)結尾且以正確幻數開頭的每個文件。gunzip
還可以辨識特殊副檔名.tgz
和分別作為和.taz
的簡寫。壓縮時,如有必要,使用副檔名,而不是截斷帶有副檔名的文件。.tar.gz``.tar.Z``gzip``.tgz``.tar
的另一個顯著特點
gunzip
是它預設忽略壓縮文件中儲存的名稱,解壓到一個文件名,該文件的名稱是通過從要解壓的文件中去掉後綴來確定的;如果文件沒有已知的後綴,它就不能這樣做。當然,在處理多個文件時,僅使用幻數進行過濾會產生類似的效果,但有一些區別:
gzip
目前使用者無法讀取的具有非副檔名的文件不一定會導致錯誤(但它們目前確實會導致錯誤,因為gunzip
即使它不會嘗試解壓縮它們也會打開文件);- 避免檢查每個文件中的幻數將在
gzip
實施時節省大量時間。既然它是以這種方式記錄的,它就不能輕易改變(儘管
gzip
維護者最近表明他們願意引入重大的行為改變,例如使用gunzip -l
)。