壓縮和歸檔——釋放你的磁盤空間

壓縮和解壓縮工具

壓縮比:文件壓縮比就是指文件經過壓縮后的文件大小與源文件大小的一個比差,經過壓縮工具包可以把文件壓縮

壓縮的目的:

     時間換空間

     CPU時間換硬盤的空間

壓縮工具:

compress/uncompress 以.Z作為文件后綴

gzip/gunzip 以.gz作為文件后綴

bzip2/bunzip2 以.bz2作為文件后綴

xz/unxz 以.xz作為文件后綴

        注意:以上壓縮工具默認不保留原文件

lzma/unlzma  編程使用的壓縮工具

歸檔工具:

zip/unzip

tar,cpio

注意:歸檔和壓縮工具必須以指定后綴作為文件后綴名,并且某一類工具只能解壓它能指定的后綴的文件,不能解壓其他工具指定的后綴的文件

壓縮歸檔工具 compress gzip bzip2 xz tar tar調用gzip壓縮 tar調用bzip2壓縮 tar調用xz壓縮
文件后綴名 .Z .gz .bz2 .xz .tar .tar.gz .tar.bz2 .tar.xz

壓縮工具:

默認只能對普通文件進行壓縮,不能對目錄進行壓縮

gzip/gunzip/zcat

    gzip [OPTION]… FILE …

        -d:解壓縮,相當于gunzip

        -#:1-9,指定壓縮比,值越大壓縮比越大,默認是6

        -c:將壓縮或解壓縮的結果輸出至標準輸出

            eg:gzip -c file > /path/to/somefile.gz

            以保存源文件的方式壓縮文件

    zcat:把文件以解壓的形式顯示出來,但不對文件進行解壓

        eg:zcat file.gz > /path/to/somefile

        以保存壓縮文件的方式解壓文件

[root@CentOS6 testdir]# ls
gm.sh  test  test.sh
[root@CentOS6 testdir]# gzip test
[root@CentOS6 testdir]# ls
gm.sh  test.gz  test.sh
[root@CentOS6 testdir]# gzip -d test.gz 
[root@CentOS6 testdir]# ls
gm.sh  test  test.sh
[root@CentOS6 testdir]# gzip -c test > test.gz
[root@CentOS6 testdir]# ls
gm.sh  test  test.gz  test.sh
[root@CentOS6 testdir]# gzip -d test.gz 
gzip: test already exists; do you wish to overwrite (y or n)? y
[root@CentOS6 testdir]# ls
gm.sh  test  test.sh

bzip2/bunzip2/bzcat

    bzip2 [OPTION]… FILE …

    -d:解壓縮

    -#:壓縮比,默認為6,可選擇為1-9

    -k:keep,保留原文件

    bzcat:把文件以解壓的形式顯示出來,但不對文件進行解壓

[root@CentOS6 testdir]# ls
gm.sh  test  test.sh
[root@CentOS6 testdir]# bzip2 gm.sh
[root@CentOS6 testdir]# ls
gm.sh.bz2  test  test.sh
[root@CentOS6 testdir]# bzip2 -d gm.sh.bz2 
[root@CentOS6 testdir]# ls
gm.sh  test  test.sh
[root@CentOS6 testdir]# bzip2 -k gm.sh 
[root@CentOS6 testdir]# ls
gm.sh  gm.sh.bz2  test  test.sh
[root@CentOS6 testdir]# bzip2 -d gm.sh.bz2 
bzip2: Output file gm.sh already exists.
[root@CentOS6 testdir]# ls
gm.sh  gm.sh.bz2  test  test.sh

xz/unxz/xzcat

    xz [OPTION]… FILE …

    -d:解壓縮

    -#:壓縮比,默認為6,可選擇為1-9

    -k:keep,保留原文件;

    xzcat:把文件以解壓的形式顯示出來,但不對文件進行解壓

[root@CentOS6 testdir]# ls
gm.sh  gm.sh.bz2  test  test.sh
[root@CentOS6 testdir]# xz test.sh
[root@CentOS6 testdir]# ls
gm.sh  gm.sh.bz2  test  test.sh.xz
[root@CentOS6 testdir]# xz -d test.sh.xz 
[root@CentOS6 testdir]# ls
gm.sh  gm.sh.bz2  test  test.sh
[root@CentOS6 testdir]# xz -k test.sh 
[root@CentOS6 testdir]# ls
gm.sh  gm.sh.bz2  test  test.sh  test.sh.xz
[root@CentOS6 testdir]# xz -d test.sh.xz 
xz: test.sh: File exists
[root@CentOS6 testdir]# ls
gm.sh  gm.sh.bz2  test  test.sh  test.sh.xz

歸檔工具:

解決壓縮工具不能對目錄進行壓縮的問題

tar:

默認保留原文件或目錄

    tar [OPTION]…FILE…

(1) 創建歸檔:  -c 選項

tar -c -f / PATH/TO/SOMEFILE.tar FILE…

tar -cf / PATH/TO/SOMEFILE.tar FILE…

    -f 后加歸檔文件保存的路徑和文件名

    此處可以不寫 –

(2) 查看歸檔文件中的文件列表:  -t 選項

tar -t -f  /PATH/TO/SOMEFILE.tar

(3) 展開歸檔:  -x 選項

tar -xf  /PATH/TO/SOMEFILE.tar

tar xf  /PATH/TO/SOMEFILE.tar -C /PATH/

    -C:指定歸檔文件展開后的保存路徑,不指默認為當前工作路徑

    注意:若解壓文件的文件名在默認路徑下有同名文件,會直接覆蓋,不會提示用戶


結合壓縮工具實現:歸檔并壓縮

-z: gzip

tar -zcf /path/to/somefile.tar.gz file

    歸檔并壓縮成.gz格式的文件

tar -zxf /path/from/somefile.tar.gz

    解壓縮展開歸檔

    可以直接寫出-xf或者xf

-j: bzip2

tar -jcf /path/to/somefile.tar.gz file

    歸檔并壓縮成.bz2格式的文件

tar -jxf /path/from/somefile.tar.gz

    解壓縮展開歸檔

    可以直接寫出-xf或者xf

-J: xz

tar -Jcf /path/to/somefile.tar.gz file

    歸檔并壓縮成.xz格式的文件

tar -Jxf /path/from/somefile.tar.gz

    解壓縮展開歸檔

    可以直接寫出-xf或者xf

注意:解壓縮并展開歸檔時可省略解壓縮工具(z,j,J),只使用-xf或者xf,tar工具會自行判斷文件后綴并調用相應的解壓工具來完成解壓

[root@CentOS6 testdir]# ls
gm.sh  gm.sh.bz2  test  test.sh  test.sh.xz
[root@CentOS6 testdir]# tar -jcf test.tar.gz test
[root@CentOS6 testdir]# ls
gm.sh  gm.sh.bz2  test  test.sh  test.sh.xz  test.tar.gz
[root@CentOS6 testdir]# tar xf test.tar.gz -C /root/
[root@CentOS6 testdir]# ls /root/
awkgrepsed  bin  Desktop  httpd-2.2.29  scripts  test  video
[root@CentOS6 testdir]# rm test
rm: remove regular file `test'? y
[root@CentOS6 testdir]# tar xf test.tar.gz 
[root@CentOS6 testdir]# ls
gm.sh  gm.sh.bz2  test  test.sh  test.sh.xz  test.tar.gz
[root@CentOS6 testdir]# echo xx > test  //把test文件重置成xx,測試是否提示用戶覆蓋文件
[root@CentOS6 testdir]# cat test
xx
[root@CentOS6 testdir]# tar xf test.tar.gz 
[root@CentOS6 testdir]# cat test  //tar展開歸檔時不提示用戶是否覆蓋同名文件,直接覆蓋當前目錄下的同名文件,使用時請小心
1
2
3
4
5

原創文章,作者:megedugao,如若轉載,請注明出處:http://www.www58058.com/36868

(0)
megedugaomegedugao
上一篇 2016-08-18
下一篇 2016-08-18

相關推薦

  • 馬哥教育網絡班19期第十二周課程練習

    1、請描述一次完整的http請求處理過程; 一次完整的http請求處理過程如下: (1) 建立或處理連接:接收客戶端的請求,建立連接,或是拒絕其請求 (2) 接收請求: 接收來自于網絡的請求報文中對某資源的一次請求的過程時,web服務器也分幾種模型對并發請求進行響應:             &nb…

    Linux干貨 2016-08-11
  • 查找與壓縮

    文件查找 在文件系統上查找符合條件的文件; ? 文件查找:locate, find locate :非實時查找(數據庫查找) find :實時查找 locate 1.查詢系統上預建的文件索引數據庫 /var/lib/mlocate/mlocate.db ? 2.依賴于事先構建的索引,索引的構建是在系統較為空閑時自動進行(周期性任務);管理需要員手動更新數據庫…

    Linux干貨 2016-08-22
  • Linux文件類型及顏色標識整理

    Linux文件類型及顏色標識整理 M21陸東貴 使用工具: ls命令     ls –l:以常格式顯示文件及目錄的詳細信息     例如:-rw-r–r–  1 root root       0 10月 …

    Linux干貨 2016-10-18
  • Linux基礎命令

    Linux基礎命令 大家都知道Linux是由許許多多的小程序組成的,而這些小程序是怎么啟動的呢?在Linux中這些小程序大多是靠命令來啟動運行的 命令(COMMAND):請求內核將某個二進制程序運行為一個進程的過程就是命令 程序由命令運行之后就會形成一個有生命周期的‘進程’,一個靜態的二進制程序運行為一個動態的進程是由命令發起的. 在Linux中命令可分為兩…

    Linux干貨 2016-11-02
  • keepalived高可用haproxy配合varnish實現wordpress的動靜分離

    haproxy和nginx都可以作為七層和四層反代服務器對外提供服務,此文通過haproxy和keealived配置varnish搭建wordpress的動靜分離站點 一、實驗環境 五臺虛擬機: haproxy-1:搭建haproxy和keepalived服務,ip地址:192.168.11.176 haproxy-2:搭建haproxy和keepalive…

    2017-07-03
  • 第六周作業

    請詳細總結vim編輯器的使用并完成以下練習題 vim總結:     模式:編輯模式                 插入模式                 末行模式  …

    Linux干貨 2017-02-06
欧美性久久久久