iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
0
自我挑戰組

linux 能力upup系列 第 20

Day20 檔案壓縮

有沒有過這種經驗,因為檔案太大導致要上傳很久或是沒辦法寄出email。這個時候,需要的就是檔案壓縮的部分,這個東西就是為了降低檔案的容量,甚至限制檔案的容量,讓一個大型檔案縮小成數個小型檔案。原理我這邊先跳過,因為這個會聊很久,所以我大概都是以重點的方式帶過。

壓縮檔案有一個很重要的資訊叫做壓縮比,基本上就是壓縮後的檔案與被壓縮的檔案所占用的磁碟空間。

linux支援有關壓縮的指令是非常非常多的,不同指令所使用的壓縮技術也都不太一樣,所以不同指令間的壓縮檔案沒辦法相互解除壓縮,也就是壓縮跟解壓縮的指令是一對一的。

常見的壓縮檔案的副檔名

.Z:compress 程式壓縮的檔案
.zip: zip 程式壓縮的檔案
.gz: gzip 程式壓縮的檔案
.bz2: bzip2 程式壓縮的檔案
.xz: xz 程式壓縮的檔案
.tar: tar 程式打包的資料,沒有壓縮
.tar.gz: tar 程式打包的資料,有經過gzip 程式壓縮
.tar.bz2:tar 程式打包的資料,有經過bzip2 程式壓縮
.tar.xz:tar 程式打包的資料,有經過xz 程式壓縮

那接下來我就要來介紹指令了

gzip -> zcat/zmore/zless/zgrep
(1)應用度最廣泛的壓縮指令
(2)可以解開 compress, zip, gzip 等軟體所壓縮的檔案
(3)建立的壓縮檔案的檔案名稱都是(檔案名稱).gz
(4)預設的情況下,原始檔案會被壓縮成.gz的檔案名稱,原始檔案就會消失
(5)在windows系統中,可以被WinRAR/7zip這個軟體解壓縮
(6)基本上gzip的壓縮已經經過最佳化了
(7)因為比compress有更好的壓縮比取代compress

指令格式
gzip (-cdtv#) 檔案名稱
zcat 檔案名稱.gz

有關的選項與參數
-c:將壓縮的資料輸出到銀幕上,可以透過資料流重新導向來處理
-d:解壓縮檔案
-t:用來檢驗壓縮檔案的一致性,住要用來確認是否有錯誤
-v:顯示出原始檔案/壓縮檔案的壓縮比等資訊
-#:#是數字的意思,代表壓縮等級的意思,-1最快但壓縮比最差,-9最慢但壓縮比最佳,預設為-6

bzip2 -> bzcat/bzmore/bzless/bzgrep
(1)因為比gzip有更好的壓縮比取代gzip
(2)用法與gzip極為相似
(3)壓縮檔案的時間會比gzip久一點

指令格式
bzip2 (-cdkzv#) 檔案名稱
bzcat 檔案名稱.bz

有關的選項與參數
-c:將壓縮過程中所產生的資料都輸出到銀幕上
-d:解壓縮檔案
-k:保留原始檔案
-z:壓縮檔案
-v:顯示出原始檔案/壓縮檔案的壓縮比等資訊
-#:代表壓縮等級的意思,-1最快但壓縮比最差,-9最慢但壓縮比最佳

xz -> xzcat/xzmore/xzless/xzgrep
(1)因為比bzip2有更好的壓縮比取代bzip2
(2)用法基本上與前面介紹的兩組指令一模一樣
(3)花費的時間是三種壓縮指令最多的

指令格式
xz (-dtlkc#) 檔案名稱
xcat 檔案名稱.xz

有關的選項與參數
-d:解壓縮檔案
-t:測試壓縮檔案的完整性
-l:列出壓縮檔案的相關資訊
-k:保留原始檔案
-c:將壓縮過程中所產生的資料都輸出到銀幕上
-#:代表壓縮等級的意思,-1最快但壓縮比最差,-9最慢但壓縮比最佳

以上就是本人介紹檔案壓縮的部分,如果有缺漏的部分,也麻煩大家多指教


上一篇
Day19 指令與檔案的搜尋
下一篇
Day21 檔案打包
系列文
linux 能力upup30

尚未有邦友留言

立即登入留言