壓縮打包使用工具及使用方法

壓縮打包介紹

使用壓縮工具的好處:
使用壓縮文件,不只能夠節省磁盤空間,並且在傳輸時還能節省網絡寬帶。linux

咱們一般講的家用寬帶和機房寬帶100M是有區別的:
機房寬帶的上行和下行都是100M,因此價格昂貴,家用寬帶下行是100M,可是上行每每只有10M-20M數組

  • Linux下最多見的壓縮文件是.tar.gz格式,還有.zip,.gz,.bz2,.xz,.tar.bz2,.tar.xz
  • 等。
  • .gz 表示由gzip壓縮工具壓縮的文件。
  • .bz2 表示由bzip2壓縮工具壓縮的文件。
  • .tar 表示由tar打包程序打包的文件(tar沒有壓縮功能,只是把一個目錄合併成一個文件)
  • .tar.gz 先打包,在由gzip壓縮
  • .tar.bz2 先打包,在由bzip2壓縮
  • .tar.xz 先打包,在由xz壓縮

gzip壓縮工具

格式:gzip [參數] filename -d是解壓縮。bash

  • gzip -# filename //#範圍1-9,默認6
  • gzip 不能壓縮目錄
  • gzip filename 壓縮文件,暫不支持壓縮目錄,壓縮後源文件消失
  • gzip -d filename.gz 解壓文件,解壓後,源壓縮文件消失
  • gunzip filename.gz 解壓文件, 解壓後,源壓縮文件消失
  • gzip –c filename > /tmp/filename.gz指定壓縮文件路徑,而且源文件存在
  • gzip –d –c /tmp/filename.gz > ./filename 解壓文件到那個路徑下,而且源壓縮文件存在。
  • gunzip –c /tmp/filename.gz > ./filename 解壓文件到那個路徑下,而且源壓縮文件存在。
  • zcat 1.txt.gz 查看.gz文件
  • file /tmp/1.txt.gz 查看文件的屬性

例子:查找/etc/下後綴爲.conf的文件,並將它的內容追加到文件1.txt中,而且壓縮它,而後再解壓。網絡

[root@linux-128 d6z]# find /etc/ -type f -name "*.conf" -exec cat {} >>1.txt \;
[root@linux-128 d6z]# du -sh 1.txt
4.0M	1.txt      //這裏要注意一下,這個大小不太準確,這裏屢次追加會看到文件,du -sh 1.txt查看的文件數值不一樣,但在屢次查看,文件大小會恢復正常。(跳轉數值較大比,是由於這個文件自己存在不少空隙,最後在壓縮並解壓後,會發現大小會有不一樣) 
[root@linux-128 d6z]# gzip 1.txt
[root@linux-128 d6z]# du -sh 1.txt.gz
664K	1.txt.gz
[root@linux-128 d6z]# gzip -d 1.txt.gz
[root@linux-128 d6z]# du -sh 1.txt
2.5M	1.txt
[root@linux-128 d6z]# gzip 1.txt
[root@linux-128 d6z]# du -sh 1.txt.gz
664K	1.txt.gz
[root@linux-128 d6z]# gunzip  1.txt.gz
[root@linux-128 d6z]# du -sh 1.txt
2.5M	1.txt
  • 壓縮文件1.txt,而且將壓縮文件放到/tmp/下
[root@linux-128 d6z]# gzip -c 1.txt > /tmp/1.txt.gz
[root@linux-128 d6z]# ls
1.txt
[root@linux-128 d6z]# ls /tmp/1.txt.gz
/tmp/1.txt.gz
[root@linux-128 d6z]# du -sh /tmp/1.txt.gz
664K	/tmp/1.txt.gz
  • 解壓文件1.txt.gz ,存放到當前目錄下,命名爲2.txt
[root@linux-128 d6z]# gzip -d -c /tmp/1.txt.gz > ./2.txt
[root@linux-128 d6z]# ls
1.txt  2.txt
[root@linux-128 d6z]# wc -l 1.txt 2.txt
  64790 1.txt
  64790 2.txt
 129580 總用量
[root@linux-128 d6z]# du -sh 1.txt 2.txt
2.5M	1.txt
2.5M	2.txt
[root@linux-128 d6z]# ls /tmp/1.txt.gz
/tmp/1.txt.gz
  • 查看壓縮文件1.txt.gz的內容,由於內容比較多,這裏就不粘貼出來了。
[root@linux-128 d6z]# zcat /tmp/1.txt.gz
  • file /tmp/1.txt.gz 查看屬性,
[root@linux-128 d6z]# file /tmp/1.txt.gz
/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Thu Nov  9 22:33:33 2017  
/tmp/1.txt.gz 壓縮數據是1.txt,基於unix平臺,最後修改時間是2017年11月9日星期四

bzip2壓縮工具

bzip命令的格式:bzip2 [-dz] filename ,壓縮文件時加不加-z都同樣,-d 解壓縮。
bzip比gzip壓縮更小,所耗費的CPU資源也最大(壓縮的文件也是最小的)工具

  • bzip2 1.txt / bzip2 -z 1.txt //壓縮文件
  • bzip2 -d 1.txt.bz2 / bunzip2 1.txt.bz2 //解壓文件
  • bzip -# 1.txt //#範圍1-9,默認9
  • 不能壓縮目錄
  • bzcat 1.txt.bz2 //查看壓縮文件
  • bzip2 -c 1.txt > /root/1.txt.bz2 //指定壓縮文件路徑,而且源文件存在
  • bzip2 -c -d /root/1.txt.bz2 > /tmp/1.txt.new2 //解壓文件到指定路徑下,而且源壓縮文件存在
  • File 1.txt.bz2 查看文件屬性

第一次使用bzip2命令時提示沒有這個命令,咱們用yum安裝一下spa

[root@linux-128 d6z]# bzip2 1.txt
-bash: bzip2: 未找到命令
[root@linux-128 d6z]# yum install -y bzip2
  • 壓縮文件1.txt
[root@linux-128 d6z]# bzip2 1.txt
[root@linux-128 d6z]# ls
1.txt.bz2  2.txt
  • 解壓文件1.txt.gz
[root@linux-128 d6z]# bzip2 -d 1.txt.bz2
[root@linux-128 d6z]# ls
1.txt  2.txt
  • 壓縮文件1.txt,而且指定路徑,源文件存在
[root@linux-128 d6z]# bzip2 -c 1.txt > /tmp/1.txt.bz2
[root@linux-128 d6z]# ls /tmp/1.txt.bz2
/tmp/1.txt.bz2
[root@linux-128 d6z]# ls
1.txt  2.txt
  • 解壓文件1.txt.bz2,而且指定路徑重名命爲3.txt,源文件存在。
[root@linux-128 d6z]# bzip2 -d -c /tmp/1.txt.bz2  > ./3.txt
[root@linux-128 d6z]# ls
1.txt  2.txt  3.txt
[root@linux-128 d6z]# ls /tmp/1.txt.bz2
/tmp/1.txt.bz2
  • 查看壓縮文件1.txt.bz2 內容
[root@linux-128 d6z]# bzcat /tmp/1.txt.bz2
  • 查看文件1.txt.bz2的屬性。
[root@linux-128 d6z]# file /tmp/1.txt.bz2
/tmp/1.txt.bz2: bzip2 compressed data, block size = 900k 	//bzip2壓縮數據,大小爲900k

xz壓縮工具

xz命令格式:xz[-zd] filename 壓縮文件加不加-z均可以,-d解壓縮。
xz壓縮文件比bzip2更小,所耗費的CPU資源也最大(壓縮的文件也是最小的)unix

  • xz 1.txt / xz -z 1.txt //壓縮文件code

  • xz -d 1.txt.xz / unxz 1.txt.xz //解壓縮文件ip

  • xz -# 1.txt //#範圍1-9,默認9資源

  • 不能壓縮目錄

  • xzcat 1.txt.xz //查看壓縮文件內容

  • xz -c 1.txt > /root/1.txt.xz //指定壓縮文件路徑,而且源文件存在

  • xz -d -c /root/1.txt.xz > 1.txt.new3 //解壓文件到指定路徑下,而且源壓縮文件存在

  • file 1.txt.xz查看文件屬性

  • 壓縮文件1.txt

root@linux-128 d6z]# xz 1.txt
[root@linux-128 d6z]# ls
1.txt.xz  2.txt  3.txt
  • 解壓文件1.txt.xz
[root@linux-128 d6z]# xz -d 1.txt.xz
[root@linux-128 d6z]# ls
1.txt  2.txt  3.txt
  • 壓縮文件1.txt,而且指定路徑,源文件存在
[root@linux-128 d6z]# xz -c 1.txt > /tmp/1.txt.xz
[root@linux-128 d6z]# ls
1.txt  2.txt  3.txt
[root@linux-128 d6z]# ls /tmp/1.txt.xz
/tmp/1.txt.xz
  • 解壓文件1.txt.bz2,而且指定路徑重名命爲4.txt,源文件存在。
[root@linux-128 d6z]# xz -d -c /tmp/1.txt.xz > ./4.txt
[root@linux-128 d6z]# ls
1.txt  2.txt  3.txt  4.txt
[root@linux-128 d6z]# ls /tmp/1.txt.xz
/tmp/1.txt.xz
  • file 1.txz.xz
[root@linux-128 d6z]# file /tmp/1.txt.xz
/tmp/1.txt.xz: XZ compressed data  //xz壓縮數據。
  • 1.txt.xz<1.txt.bz2<1.txt.gz 說明xz壓縮更嚴謹,可是所耗費cpu資源最大。
    [root@linux-128 d6z]# du -sh /tmp/1.txt.gz /tmp/1.txt.bz2 /tmp/1.txt.xz
    664K	/tmp/1.txt.gz
    260K	/tmp/1.txt.bz2
    60K	/tmp/1.txt.xz
  • zip壓縮工具
  • zip命令能夠壓縮目錄和文件,-r 壓縮目錄。

    zip使用方法

  • zip 1.txt.zip 1.txt //壓縮文件
  • zip -r 123.zip 123/ //壓縮目錄
  • unzip 1.txt.zip //解壓
  • unzip 123.zip -d /root/456/ //解壓文件,並指定解壓到那個目錄下
  • 不能查看壓縮文件的內容,只能查看內容列表
  • unzip -l 123.zip //查看壓縮文件的內容列表
  • zip壓縮文件後,源文件不消失
  • unzip解壓文件後,會直接覆蓋原文件和目錄,不會提示覆蓋信息
  • 須要安裝zip包
  • [root@linux-128 d6z]# zip 1.txt.zip 1.txt
    -bash: zip: 未找到命令
    [root@linux-128 d6z]# yum install -y zip
  • 使用zip工具壓縮文件1.txt文件。
  • [root@linux-128 d6z]# zip 1.txt.zip 1.txt
      adding: 1.txt (deflated 74%)
    [root@linux-128 d6z]# ls
    1.txt  1.txt.zip  2.txt  3.txt  4.txt  test
    [root@linux-128 d6z]# du -sh 1.txt.zip
    664K	1.txt.zip
  • 使用zip工具壓縮目錄test
  • [root@linux-128 d6z]# zip -r test.zip test
      adding: test/ (stored 0%)
      adding: test/3.txt (deflated 74%)
      adding: test/4.txt (deflated 74%)
    [root@linux-128 d6z]# ls
    1.txt  1.txt.zip  2.txt  3.txt  4.txt  test  test.zip
    [root@linux-128 d6z]# du -sh test.zip
    1.3M	test.zip
    [root@linux-128 d6z]# du -sh test
    5.0M	test
  • 解壓壓縮文件
  • [root@linux-128 d6z]# unzip 1.txt.zip
    -bash: unzip: 未找到命令
    [root@linux-128 d6z]# yum install -y unzip
    [root@linux-128 d6z]# unzip 1.txt.zip
    Archive:  1.txt.zip
    replace 1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A   //A表示所有
      inflating: 1.txt
    [root@linux-128 d6z]# ls
    1.txt  1.txt.zip  2.txt  3.txt  4.txt  test  test.zip
    [root@linux-128 d6z]# unzip test.zip
    Archive:  test.zip
    replace test/3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
      inflating: test/3.txt
      inflating: test/4.txt
  • 指定解壓文件路徑
  • [root@linux-128 d6z]# unzip  test.zip  -d  /tmp/test
    Archive:  test.zip
       creating: /tmp/test/test/
      inflating: /tmp/test/test/3.txt
      inflating: /tmp/test/test/4.txt
    [root@linux-128 d6z]# ls /tmp/test
    333  test  test1  test2
  • 查看壓縮文件內容列表
  • [root@linux-128 d6z]# unzip -l test.zip
    Archive:  test.zip
      Length      Date    Time    Name
    ---------  ---------- -----   ----
            0  11-10-2017 22:44   test/
      2572100  11-10-2017 22:43   test/3.txt
      2572100  11-10-2017 22:44   test/4.txt

    tar打包

  • tar自己是一個大包工具,能夠把目錄打包成一個文件,它把全部的文件整合成一個大文件,方便複製或者移動。
  • 命令格式:tar [-zjxcvfpP] filename.tar
  • tar參數

  • -z表示同時使用gzip壓縮
  • -j表示同時用bzip壓縮
  • -J表示同時用xz壓縮
  • -c表示創建一個tar包或者壓縮文件包
  • -x表示解包或者解壓
  • -v表示可視化
  • -f後面跟文件名(-f filename,表示壓縮後的文件名爲filename)注意:若是多個參數組合的狀況下,-f要寫在最後面。
  • -t表示查看tar包裏的文件
  • --exclude filename 表示在打包或壓縮時,不要將某個文件不包含在裏面。
  • 打包或者解包,源文件都存在。
  • tar使用方法:

  • tar -cvf 123.tar 123 // 打包目錄123
  • tar -cvf aming.tar 1.txt 123 //打包目錄123和文件1.txt
  • tar -xvf aming.tar //解包
  • tar -tf aming.tar //查看打包文件
  • tar -cvf aming.tar --exclude 1.txt --exclude 2 123 //打包目錄123,單不包括文件1.txt和2
  • 打包目錄test和文件1.txt,2.txt
  • [root@linux-128 d6z]# tar -cvf test.tar test 1.txt 2.txt
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
    [root@linux-128 d6z]# ls
    1.txt  1.txt.zip  2.txt  3.txt  4.txt  test  test.tar  test.zip
  • 查看打包文件test.tar的內容
  • [root@linux-128 d6z]# tar -tf test.tar
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
  • 解包文件test.tar
  • [root@linux-128 d6z]# tar -xvf test.tar
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
  • 打包目錄test和文件1.txt 2.txt ,可是不包含文件3.txt
  • [root@linux-128 d6z]# tar -cvf test.tar --exclude 3.txt  test 1.txt 2.txt
    test/
    test/4.txt
    1.txt
    2.txt
  • 打包目錄test和文件1.txt 2.txt ,可是不包含文件3.txt和4.txt
  • [root@linux-128 d6z]# tar -cvf test.tar --exclude 3.txt --exclude  test 1.txt 2.txt
    1.txt
    2.txt

    打包並壓縮

  • tar 命令還能夠在打包的同時支持gzip壓縮,bzip壓縮和xz壓縮
  • 打包並壓縮的使用方法:

  • tar -zcvf 123.tar.gz 123
  • tar -zxvf 123.tar.gz
  • tar -jcvf 123.bz2 123
  • tar -jxvf 123.bz2
  • tar -Jcvf 123.xz 123
  • tar -Jxvf 123.xz
  • tar -tf 123.bz2 / tar -tf 123.gz / tar -tf 123.xz
  • 打包文件並使用gzip壓縮
  • [root@linux-128 d6z]# tar -zcvf test.tar.gz test 1.txt 2.txt
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
    [root@linux-128 d6z]# ls
    1.txt  1.txt.zip  2.txt  3.txt  4.txt  test  test.tar  test.tar.gz  test.zip
  • 查看打包文件
  • [root@linux-128 d6z]# tar -tf test.tar.gz
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
    解包
    [root@linux-128 d6z]# tar -zxvf test.tar.gz
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
  • 打包文件並使用bzip2壓縮
  • [root@linux-128 d6z]# tar -jcvf test.tar.bz2 test 1.txt 2.txt
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
    解包
    [root@linux-128 d6z]# tar -jxvf test.tar.bz2
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
  • 打包文件並使用xz壓縮
  • [root@linux-128 d6z]# tar -Jcvf test.tar.xz test 1.txt 2.txt
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
    解包
    [root@linux-128 d6z]# tar -Jxvf test.tar.xz
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
  • 查看打包文件
  • [root@linux-128 d6z]# tar tf test.tar.xz
    test/
    test/3.txt
    test/4.txt
    1.txt
    2.txt
    [root@linux-128 d6z]# du -sh test.tar.gz test.tar.bz2 test.tar.xz
    2.6M	test.tar.gz
    988K	test.tar.bz2
    64K	test.tar.xz

    注意:打包後文件越小,耗時越長,佔用cpu資源越多。

相關文章
相關標籤/搜索