1. 程式人生 > >壓縮打包介紹,gzip壓縮工具,bzip2壓縮工具,xz壓縮工具,zip壓縮工具,tar打包,打包並壓縮

壓縮打包介紹,gzip壓縮工具,bzip2壓縮工具,xz壓縮工具,zip壓縮工具,tar打包,打包並壓縮

壓縮打包介紹

  • 由於網路資源是有限的,機房伺服器頻寬非常昂貴
  • 怎樣用合理的使用頻寬是很重要的
  • 將檔案壓縮後,無論是儲存還是傳輸,既節省伺服器空間,又節省頻寬
  • 上圖是目前主要的壓縮格式
  • 在linux裡面,雖然不像windows一樣,檔案字尾名有嚴格限制
  • 不管什麼格式的檔案,都可以自定義檔案字尾
  • 但是這樣不利於管理,也不方便與他人溝通交流使用
  • 所以還是應該按照檔案內容正確的格式來命名檔案字尾

gzip 壓縮工具

  • gzip是linux的一種壓縮工具
  • 從上圖可以看到,有一個叫做 1.txt 的檔案,檔案大小是3.1MB,有37860行
  • 現在使用 gzip 對1.txt進行壓縮
  • 壓縮命令就是 gzip 1.txt 回車就完成了
  • 然後使用 ls 檢視當前目錄
  • 1.txt檔案消失了,出現了一個新的檔案,叫做 1.txt.gz
  • 原始檔被壓縮後並重命名為了 1.txt.gz

  • 如上圖,使用 gzip -d 1.txt.gz 命令把 1.txt.gz 檔案進行了解壓縮
  • 加上 -d 引數就可以對檔案進行解壓縮
  • 下面使用 ls 檢視目錄,發現 1.txt.gz 不見了,1.txt 又出現了
  • 1.txt.gz 被解壓縮並重命名為了 1.txt

  • 解壓縮後檢視檔案大小,發現只有 1.4MB ,壓縮前有 3MB 左右
  • 因為原來的檔案佔用了很多虛的空間,壓縮之後就把這些虛的空間消除掉了
  • 重新解壓縮後消除掉的虛的空間並不會還原,所以檔案大小還是變小了
  • 檢視檔案行數,跟原來一樣,還是37860行,並沒有因為檔案變小而減少行數

  • 使用 gzip -1 1.txt 重新壓縮 1.txt 檔案,其中 -1 代表壓縮級別
  • gzip 的壓縮級別是從 1 到 9 的,壓縮級別越高,壓縮的越小,但是需要使用的cpu資源越多
  • 如果不指定壓縮級別,預設壓縮級別是 6
  • 現在指定壓縮級別為 1 ,可以看到,du檢視檔案大小,1.txt.gz 為396kb
  • 前面使用預設壓縮級別 6 壓縮之後檔案大小是 344kb
  • 降低壓縮級別後,壓縮的檔案就沒有那麼小了
  • 一般都是使用預設的級別,不需要調整大小

  • 除了 -d 引數可以解壓縮外,也可以使用 gunzip 來解壓縮
  • 如上圖,命令 gunzip 1.txt.gz 就可以解壓縮 1.txt.gz

  • 可以使用 file 1.txt.gz 檢視檔案資訊
  • 可以看到,檔案壓縮方式是 gzip,壓縮前的名字是1.txt,最後一次修改的時間,壓縮級別是最大級別,這次用的是9級別壓縮

  • 想檢視壓縮檔案的內容,可以使用 zcat 1.txt.gz 來檢視1.txt.gz的內容
  • zcat 的工作原理就是先解壓縮,然後再檢視

  • 現在使用 -d 引數重新解壓縮 1.txt.gz
  • 然後使用 -c 引數重新壓縮 1.txt
  • gzip -c 1.txt > /tmp/1.txt.gz
  • 這個命令是把 1.txt 壓縮到 /tmp 目錄下面,並命名為 1.txt.gz
  • 但是原始檔並不消失,可以看到,1.txt仍然存在,tmp目錄下面多了一個1.txt.gz檔案
  • 使用 -c 引數就可以製作原始檔的壓縮檔案並存放在指定的位置
  • 這裡就製作了一個原始檔1.txt的壓縮檔案1.txt.gz並存放在/tmp目錄下面

  • 如上圖,gzip -d -c /tmp/1.txt.gz > /root/tmp/d6z/2.txt
  • 這個命令可以製作 /tmp/1.txt.gz 這個壓縮檔案的解壓縮檔案2.txt,並存放到/root/tmp/d6z目錄
  • 其中 -d 代表解壓縮功能,-c 可以不刪除原始檔,將製作好的檔案放到指定位置
  • gzip 是不能壓縮目錄的,只能壓縮檔案

bzip2壓縮工具

  • bzip2 可以比 gzip 壓縮的更小一些,但是會耗費更多的cpu資源
  • 看上圖,1.txt 大小是 1.4MB
  • 使用 bzip2 1.txt 壓縮之後,用du檢視,大小變成了 88kb
  • 之前使用gzip壓縮後大小變成了300多kb
  • 所以bzip2可以將檔案壓縮得比gzip小很多

  • 可以使用 bzip2 -d 1.txt.bz2 解壓縮,跟gzip一樣,使用-d引數解壓縮
  • 然後重新壓縮一次
  • 還可以使用 bunzip2 1.txt.bz2 解壓縮,跟gunzip差不多
  • bunzip2同樣不能壓縮目錄

  • bzip2 同樣可以使用 -c 引數製作原始檔的壓縮檔案重新命名並存放在指定位置
  • bzip2 -c 1.txt > 1.txt.bz2 就製作了1.txt的壓縮檔案1.txt.bz2並存放在當前目錄下
  • 如圖,bzip2 同樣可以使用 -d -c 引數製作原始檔的解壓縮檔案重新命名並存放在指定位置
  • 這裡就將 1.txt.bz2 的解壓縮檔案 3.txt 存放在當前目錄下

  • bzip2 -9 1.txt 就可以指定壓縮級別來壓縮 1.txt
  • bzip2 的壓縮級別也有9級,不過預設壓縮級別就是9
  • 所以一般不需要指定壓縮級別
  • 可以使用 file 1.txt.bz2 來檢視壓縮檔案資訊
  • file命令可以用在不知道檔案格式的時候,可以用file檢視到格式資訊

  • bzcat 可以檢視用bzip2壓縮的檔案內容

xz壓縮工具

  • 不是非常常用的壓縮工具,用法與gzip和bzip2大體一致
  • xz 的壓縮率比 gzip 和 bzip2 都高
  • 可以看到,xz壓縮之後的檔案大小,比gzip和bzip2壓縮後的都