減少文件大小有兩個(gè)明顯的好處,一是可以減少存儲(chǔ)空間,二是通過網(wǎng)絡(luò)傳輸文件時(shí),可以減少傳輸?shù)臅r(shí)間。gzip是在Linux系統(tǒng)中經(jīng)常使用的一個(gè)對文件進(jìn)行壓縮和解壓縮的命令,既方便又好用。gzip不僅可以用來壓縮大的、較少使用的文件以節(jié)省磁盤空間,還可以和tar命令一起構(gòu)成Linux操作系統(tǒng)中比較流行的壓縮文件格式。據(jù)統(tǒng)計(jì),gzip命令對文本文件有60%~70%的壓縮率。 1.命令格式: gzip[參數(shù)][文件或者目錄] 2.命令功能: gzip是個(gè)使用廣泛的壓縮程序,文件經(jīng)它壓縮過后,其名稱后面會(huì)多出".gz"的擴(kuò)展名。 3.命令參數(shù): -a或--ascii 使用ASCII文字模式。 -c或--stdout或--to-stdout 把壓縮后的文件輸出到標(biāo)準(zhǔn)輸出設(shè)備,不去更動(dòng)原始文件。 -d或--decompress或----uncompress 解開壓縮文件。 -f或--force 強(qiáng)行壓縮文件。不理會(huì)文件名稱或硬連接是否存在以及該文件是否為符號連接。 -h或--help 在線幫助。 -l或--list 列出壓縮文件的相關(guān)信息。 -L或--license 顯示版本與版權(quán)信息。 -n或--no-name 壓縮文件時(shí),不保存原來的文件名稱及時(shí)間戳記。 -N或--name 壓縮文件時(shí),保存原來的文件名稱及時(shí)間戳記。 -q或--quiet 不顯示警告信息。 -r或--recursive 遞歸處理,將指定目錄下的所有文件及子目錄一并處理。 -S<壓縮字尾字符串>或----suffix<壓縮字尾字符串> 更改壓縮字尾字符串。 -t或--test 測試壓縮文件是否正確無誤。 -v或--verbose 顯示指令執(zhí)行過程。 -V或--version 顯示版本信息。 -num 用指定的數(shù)字num調(diào)整壓縮的速度,-1或--fast表示最快壓縮方法(低壓縮比),-9或--best表示最慢壓縮方法(高壓縮比)。系統(tǒng)缺省值為6。 4.使用實(shí)例: 實(shí)例1:把test6目錄下的每個(gè)文件壓縮成.gz文件 命令: gzip * 輸出: [root@localhost test6]# ll 總計(jì) 604 ---xr--r-- 1 root mail 302108 11-30 08:39 linklog.log ---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log -rw-r--r-- 1 mail users 61 11-30 08:39 log2013.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2014.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2015.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2016.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2017.log [root@localhost test6]# gzip * [root@localhost test6]# ll 總計(jì) 28 ---xr--r-- 1 root mail 1341 11-30 08:39 linklog.log.gz ---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz -rw-r--r-- 1 mail users 70 11-30 08:39 log2013.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2014.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2015.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2016.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2017.log.gz [root@localhost test6]# 說明: 實(shí)例2:把例1中每個(gè)壓縮的文件解壓,并列出詳細(xì)的信息 命令: gzip -dv * 輸出: [root@localhost test6]# ll 總計(jì) 28 ---xr--r-- 1 root mail 1341 11-30 08:39 linklog.log.gz ---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz -rw-r--r-- 1 mail users 70 11-30 08:39 log2013.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2014.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2015.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2016.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2017.log.gz [root@localhost test6]# gzip -dv * linklog.log.gz: 99.6% -- replaced with linklog.log log2012.log.gz: 99.6% -- replaced with log2012.log log2013.log.gz: 47.5% -- replaced with log2013.log log2014.log.gz: 0.0% -- replaced with log2014.log log2015.log.gz: 0.0% -- replaced with log2015.log log2016.log.gz: 0.0% -- replaced with log2016.log log2017.log.gz: 0.0% -- replaced with log2017.log [root@localhost test6]# ll 總計(jì) 604 ---xr--r-- 1 root mail 302108 11-30 08:39 linklog.log ---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log -rw-r--r-- 1 mail users 61 11-30 08:39 log2013.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2014.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2015.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2016.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2017.log [root@localhost test6]# 說明: 實(shí)例3:詳細(xì)顯示例1中每個(gè)壓縮的文件的信息,并不解壓 命令: gzip -l * 輸出: [root@localhost test6]# gzip -l * compressed uncompressed ratio uncompressed_name 1341 302108 99.6% linklog.log 1341 302108 99.6% log2012.log 70 61 47.5% log2013.log 32 0 0.0% log2014.log 32 0 0.0% log2015.log 32 0 0.0% log2016.log 32 0 0.0% log2017.log 2880 604277 99.5% (totals) 說明: 實(shí)例4:壓縮一個(gè)tar備份文件,此時(shí)壓縮文件的擴(kuò)展名為.tar.gz 命令: gzip -r log.tar 輸出: [root@localhost test]# ls -al log.tar -rw-r--r-- 1 root root 307200 11-29 17:54 log.tar [root@localhost test]# gzip -r log.tar [root@localhost test]# ls -al log.tar.gz -rw-r--r-- 1 root root 1421 11-29 17:54 log.tar.gz 說明: 實(shí)例5:遞歸的壓縮目錄 命令: gzip -rv test6 輸出: [root@localhost test6]# ll 總計(jì) 604 ---xr--r-- 1 root mail 302108 11-30 08:39 linklog.log ---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log -rw-r--r-- 1 mail users 61 11-30 08:39 log2013.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2014.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2015.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2016.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2017.log [root@localhost test6]# cd .. [root@localhost test]# gzip -rv test6 test6/log2014.log: 0.0% -- replaced with test6/log2014.log.gz test6/linklog.log: 99.6% -- replaced with test6/linklog.log.gz test6/log2015.log: 0.0% -- replaced with test6/log2015.log.gz test6/log2013.log: 47.5% -- replaced with test6/log2013.log.gz test6/log2012.log: 99.6% -- replaced with test6/log2012.log.gz test6/log2017.log: 0.0% -- replaced with test6/log2017.log.gz test6/log2016.log: 0.0% -- replaced with test6/log2016.log.gz [root@localhost test]# cd test6 [root@localhost test6]# ll 總計(jì) 28 ---xr--r-- 1 root mail 1341 11-30 08:39 linklog.log.gz ---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz -rw-r--r-- 1 mail users 70 11-30 08:39 log2013.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2014.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2015.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2016.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2017.log.gz 說明: 這樣,所有test下面的文件都變成了*.gz,目錄依然存在只是目錄里面的文件相應(yīng)變成了*.gz.這就是壓縮,和打包不同。因?yàn)槭菍δ夸洸僮?,所以需要加?r選項(xiàng),這樣也可以對子目錄進(jìn)行遞歸了。 實(shí)例6:遞歸地解壓目錄 命令: gzip -dr test6 輸出: [root@localhost test6]# ll 總計(jì) 28 ---xr--r-- 1 root mail 1341 11-30 08:39 linklog.log.gz ---xr--r-- 1 mail users 1341 11-30 08:39 log2012.log.gz -rw-r--r-- 1 mail users 70 11-30 08:39 log2013.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2014.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2015.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2016.log.gz -rw-r--r-- 1 root mail 32 11-30 08:39 log2017.log.gz [root@localhost test6]# cd .. [root@localhost test]# gzip -dr test6 [root@localhost test]# cd test6 [root@localhost test6]# ll 總計(jì) 604 ---xr--r-- 1 root mail 302108 11-30 08:39 linklog.log ---xr--r-- 1 mail users 302108 11-30 08:39 log2012.log -rw-r--r-- 1 mail users 61 11-30 08:39 log2013.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2014.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2015.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2016.log -rw-r--r-- 1 root mail 0 11-30 08:39 log2017.log [root@localhost test6]# 說明: |
|