4.5 Linux壓縮檔案或目錄中檔案為.gz格式(gzip命令)
阿新 • • 發佈:2022-05-07
gzip 是 Linux 系統中經常用來對檔案進行壓縮和解壓縮的命令,通過此命令壓縮得到的新檔案,其副檔名通常標記為“.gz”。
再強調一下,gzip 命令只能用來壓縮檔案,不能壓縮目錄,即便指定了目錄,也只能壓縮目錄內的所有檔案。
gzip 命令的基本格式如下:
[root@localhost ~]# gzip [選項] 原始檔
命令中的原始檔,當進行壓縮操作時,指的是普通檔案;當進行解壓縮操作時,指的是壓縮檔案。該命令常用的選項及含義如表 1 所示。
選項 | 含義 |
---|---|
-c | 將壓縮資料輸出到標準輸出中,並保留原始檔。 |
-d | 對壓縮檔案進行解壓縮。 |
-r | 遞迴壓縮指定目錄下以及子目錄下的所有檔案。 |
-v | 對於每個壓縮和解壓縮的檔案,顯示相應的檔名和壓縮比。 |
-l | 對每一個壓縮檔案,顯示以下欄位:壓縮檔案的大小;未壓縮檔案的大小;壓縮比;未壓縮檔案的名稱。 |
-數字 | 用於指定壓縮等級,-1 壓縮等級最低,壓縮比最差;-9 壓縮比最高。預設壓縮比是 -6。 |
【例 1】基本壓縮。
gzip 壓縮命令非常簡單,甚至不需要指定壓縮之後的壓縮包名,只需指定原始檔名即可。我們來試試:
[root@localhost ~]# gzip install.log \#壓縮instal.log 檔案 [root@localhost ~]# ls anaconda-ks.cfg install.log.gz install.log.syslog \#壓縮檔案生成,但是原始檔也消失了
【例 2】保留原始檔壓縮。
在使用 gzip 命令壓縮檔案時,原始檔會消失,從而生成壓縮檔案。這時有些人會有強迫症,就逼問筆者:能不能在壓縮檔案的時候,不讓原始檔消失?好吧,也是可以的,不過很彆扭。
[root@localhost ~]# gzip -c anaconda-ks.cfg >anaconda-ks.cfg.gz \#使用-c選項,但是不讓壓縮資料輸出到螢幕上,而是重定向到壓縮檔案中,這樣可以縮檔案的同時不刪除原始檔 [root@localhost ~]# ls anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog \#可以看到壓縮檔案和原始檔都存在
【例 3】 壓縮目錄。
我們可能會想當然地認為 gzip 命令可以壓縮目錄。 我們來試試:
[root@localhost ~]# mkdir test
[root@localhost ~]# touch test/test1
[root@localhost ~]# touch test/test2
[root@localhost ~]# touch test/test3 #建立測試目錄,並在裡面建立幾個測試檔案
[root@localhost ~]# gzip -r test/
\#壓縮目錄,並沒有報錯
[root@localhost ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog test
\#但是檢視發現test目錄依然存在,並沒有變為壓縮檔案
[root@localhost ~]# ls test/
testl .gz test2.gz test3.gz
\#原來gzip命令不會打包目錄,而是把目錄下所有的子檔案分別壓縮
在 Linux 中,打包和壓縮是分開處理的。而 gzip 命令只會壓縮,不能打包,所以才會出現沒有打包目錄,而只把目錄下的檔案進行壓縮的情況。