壓縮打包介紹,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壓縮後的都要小
  • 如上圖 xz -d 1.txt.xz 就能夠解壓縮 1.txt.xz 文件
  • unxz 1.txt.xz 也能夠解壓縮 1.txt.xz文件

  • xz -c 1.txt > 1.txt.xz 參數-c一樣能夠製做源文件的壓縮文件重命名並制定存放位置
  • xz -d -c 1.txt.xz > 4.txt 也能夠製做源文件的解壓縮文件重命名並制定存放位置
  • 要讀取xz壓縮文件的內容,可使用 xzcat 1.txt.xz 來查看
  • xz 一樣不支持壓縮目錄

zip 壓縮工具

  • zip支持壓縮目錄功能
  • linux默認不支持windows的rar格式,須要下載工具才能解壓縮rar
  • 使用 yum install -y zip 安裝zip
  • 使用 yum install -y unzip 安裝unzip
  • 使用命令 zip 2.txt.zip 2.txt
  • 就能夠製做2.txt的zip壓縮文件,不影響源文件,會出現一個新的zip壓縮文件

  • 壓縮目錄,須要 -r 參數
  • zip -r tom.zip passwd d6z
  • 意思是,把 passwd 文件和 d6z 目錄壓縮成一個壓縮文件 tom.zip

  • 使用 unzip tom.zip 解壓這個壓縮文件
  • 會出現詢問,是否覆蓋,由於使用zip壓縮文件不會刪除源文件
  • 有五個選項,這裏選擇 A 表明所有覆蓋,而後回車
  • yes表明覆蓋一個,no表明不覆蓋
  • 由於zip文件裏面有多個文件,若是不選擇 All 那麼每一個文件都會詢問一次
  • unzip 一樣能夠指定目錄,而後把壓縮文件解壓縮到目錄裏面,源文件不會消失
  • 如圖,把tom.zip解壓縮到tmp2目錄
  • 可是隻能指定目錄,解壓縮不能修改解壓縮後的文件名
  • 前面三個工具均可以使用命令查看壓縮文件內容,可是zip是不能查看內容的
  • 如圖,zip只能查看壓縮文件列表,不能查看內容,也就是說只能看裏面有什麼文件存在

tar打包工具

  • 服務器傳輸文件,若是目錄文件太多,須要一個一個傳輸,會耗費不少時間
  • 若是把全部須要傳輸的文件打包成一個大文件,就能夠節省不少時間
  • 並且用tar打包後可能減少總的空間大小
  • 由於每一個文件佔用空間是用塊計算的
  • 若是一個文件小於一個塊,也會佔用一個塊的空間
  • 若是把這些文件打包在一塊兒,那麼文件會互相填滿以前多餘的空間
  • 因此有可能把本來多佔用的塊的空間節省出來
  • tar -cvf tom.tar tmp2/ 就能夠將tmp2目錄打包成tom.tar文件
  • 其中,-c 表明creat建立,打包文件時須要有的參數
  • 而 -v 表明可視化,能夠看到打包過程打包了什麼文件進去
  • 若是不須要看過程,能夠不加 v
  • 參數 -f 也是必定要有,表明文件名,打包文件名前面必定要有f參數

  • 若是去掉 v 參數,從新打包一次,不會有任何提示
  • 新打包的文件會直接覆蓋原來打包的文件

  • 如圖,tar -xvf aminglinux.tar 就是解包命令
  • 參數 x 就是解包選項,v是可視化選項,f是文件名前面必須有的
  • 若是就在原來打包的目錄解包
  • 解包出來的文件會直接把源文件覆蓋掉,不會有任何提示

  • 如圖,tar -tf aminglinux.tar 就能夠查看打包文件的列表,看裏面有什麼文件
  • 查看列表的參數是 t ,f 是文件名前面必須有的

  • 如圖,tar打包還支持過濾功能
  • tar -cvf aminglinux.tar --exclude aming1 --exclude "*.txt" aminglinux 3.txt 4.txt
  • 這條命令的意思是,首先把 aminglinux目錄,3.txt,4.txt 三個目標打包在一塊兒
  • 並命名爲 aminglinux.tar
  • exclude選項的意思是,把這三個目標裏面包含的 aming1目錄過濾掉,aming1不會被打包進去
  • 第二個exclude 就是把全部 .txt 結尾的文件都過濾掉,也不會被打包進去

打包並壓縮

  • tar打包的時候,是支持壓縮的
  • 以前的壓縮軟件,均可以在這裏使用
  • 這裏 -czvf 就是在打包文件的同時壓縮文件,z參數就是壓縮選項
  • 這裏參數 z 表示使用的是 gzip 壓縮工具,因此打包文件名稱應該加上 .gz
  • 這裏 -cjvf 也是在打包的時候壓縮文件,不過使用不一樣的壓縮工具
  • 參數 j 表明使用的壓縮工具是 bzip2 ,因此壓縮文件結尾要加上 .bz2
  • 這裏 -cJvf 也是打包壓縮文件,參數更換爲大寫的j
  • 參數 J 表示使用的工具是 xz ,因此文件結尾應該加上 .xz
  • 解包的時候只要把參數 c 換成 x 就好了
  • tar -tf 文件名 就能夠查看文件列表
  • 無論使用哪一種工具壓縮,或者沒壓縮,均可以使用 -tf 查看文件列表
相關文章
相關標籤/搜索