Linux之文件壓縮的簡單介紹gzip,bzip2,xz

這一節主要介紹兩個部分

  1. 文件壓縮的主要原理與用途

  2. 常用壓縮指令的使用與對比

文件壓縮的主要原理與用途

文件壓縮的重要性不言而喻,尤其是網站下載文件的時候,好的壓縮技術不僅可以節省存儲空間,還可以大大降低網絡負荷,畢竟任何網站維護者都不想自己的網站一直滿負載吧,從事IT工作的日常生活中文件壓縮也無處不在,節省空間、速度、時間。好了,不絮叨了,總之文件壓縮意義非常,下面介紹兩種主要的文件壓縮技術:

  1. 計算機存儲說到底是利用二進制存儲0或1,計算機最小的存儲單位是“位”也就是bits,每個字節(Byte)有8bits,而我們計算機存取機制是以塊為單位的,舉個簡單的例子,假設計算機以1Byte為單位存取,而文件只使用了次塊的1個bit,其他7個bits就浪費了,而我們一般的文件佔據存儲空間的時候,有很多這樣的事件發生,也就是說一個文件的大小可能並沒有你表面看到的那麼大,一些聰明的計算機工程師使用複雜的計算公式,那沒有用到的空間”釋放出來“,這就是文件壓縮的技術了

  2. 另一種壓縮技術也很有趣,舉個例子說一下吧,假設你的文件有20個二進制1要存儲,那麼壓縮技術就會存儲“20個1”,而不是真的有20個1的位存在,這種技術也可以很好的精簡文件

常見壓縮指令的使用與對比

這一節主要介紹三種類型的壓縮文件

*.gz gzip 程序壓縮的文件;

*.bz2 bzip2 程序壓縮的文件;

*.xz xz 程序壓縮的文件;

在linux中文件的擴展名與文件沒有什麼關係,在這裡只是為了區分壓縮指令對應的壓縮文件。畢竟不同的壓縮指令彼此之間無法互通壓縮解壓文件。

gzip, zcat/zmore/zless/zgrep

gzip是應用度最廣的壓縮指令,目前gzip可以解開compress,zip與gzip等軟件所壓縮的文件,gzip創建的壓縮文件是*.gz的文件名,看一下語法:

root@ubuntu:~# gzip [-cdtv#] filename

選項與參數:

-c :將壓縮的數據輸出到屏幕上,可通過數據流重導向來處理;

-d :解壓縮的參數;

-t :可以用來檢驗一個壓縮文件的一致性~看看文件有無錯誤;

-v :可以顯示出原文件/壓縮文件的壓縮比等信息;

-# :# 為數字的意思,代表壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但是壓縮比最好!默認是 -6

示例一:使用gzip壓縮解壓縮

Linux之文件壓縮的簡單介紹gzip,bzip2,xz

gzip

由圖可以看出,gzip直接壓縮文件是不保留原文件的,如果要保留原文件的話需要加上-c參數,並且使用數據流重導向到新的文件,61.6%是壓縮比例,即壓縮後的文件是原文件的(1-61.6%),-d參數是對文件解壓縮。

cat/more/less 可以使用不同的方式來讀取純文本文件,那個 zcat/zmore/zless 則可以對應於 cat/more/less 的方式來讀取純文本文件被壓縮後的壓縮文件!

bzip2, bzcat/bzmore/bzless/bzgrep

bzip2是比gzip提供更好的壓縮比,bzip2壓縮用法與gzip幾乎相同

root@ubuntu:/tmp# bzip2 [-cdkzv#] filename

選項與參數:

-c :將壓縮的過程產生的數據輸出到屏幕上!

-d :解壓縮的參數

-k :保留原始文件,而不會刪除原始的文件喔!

-z :壓縮的參數 (默認值,可以不加)

-v :可以顯示出原文件/壓縮文件的壓縮比等信息;

-# :與 gzip 同樣的,都是在計算壓縮比的參數, -9 最佳, -1 最快!

xz, xzcat/xzmore/xzless/xzgrep

雖然 bzip2 已經具有很棒的壓縮比,不過顯然某些自由軟件開發者還不滿足,因此後來還推出了 xz 這個壓縮比更高的軟件!

root@ubuntu:/tmp# xz [-dtlkc#] filename

選項與參數:

-d :就是解壓縮啊!

-t :測試壓縮文件的完整性,看有沒有錯誤

-l :列出壓縮文件的相關信息

-k :保留原本的文件不刪除~

-c :將數據由屏幕上輸出!

-v :可以顯示出原文件/壓縮文件的壓縮比等信息;

-# :壓縮比!

由於bzip2與xz壓縮軟件的用發與gzip幾乎相同,就不再另行舉例子,有興趣的朋友們可以自己玩一下,下面來對比一下三種壓縮指令的壓縮比,看圖

Linux之文件壓縮的簡單介紹gzip,bzip2,xz

gzip、bzip2、xz壓縮比

怎麼樣是不是壓縮比xz>bzip2>gzip啊,可是雖然xz壓縮比好很多,但是壓縮時間卻是xz>bzip2>gzip,gzip時間上是最優的,大家可以根據自己情況選擇不同的壓縮方式哦!

下一節會接著此節內容介紹Linux的打包指令tar,感興趣的朋友可以關注一下,謝謝!!!


分享到:


相關文章: