Linux文件壓縮、解壓、歸檔總結

一、簡介

  壓縮對我們來說通常意味著減小文件體積,節省硬盤空間。在Windows平臺上處理大文件或目錄中的文件很多時我們都需要對這些文件進行壓縮處理,壓縮格式多種多樣,如:zip、rar、7z等格式,壓縮方式也比較多樣話,支持按最大壓縮比例或者最快時間進行壓縮等多種方式,而生成的壓縮包就可以讓我們更方便的進行拷貝及歸檔整理。解壓縮顧名思義就是回歸本源,把壓縮包里的文件還原成原本的樣子。同樣在Linxu平臺上有“一切皆文件”的說明,因此對文件的壓縮、解壓、歸檔更是我們日常工作中必須要掌握的技能。

二、用法詳解

 常見的壓縮解壓命令有如下幾種形式:

 compress/uncompress .Z (Unix下比較常見)

 gzip/gunzip .gz (壓縮率稍高,不支持目錄壓縮)

 bzip2/bunzip2 .bz2 (壓縮率很高,不支持目錄壓縮)

 xz/unxz .xz (目前壓縮率最高,不支持目錄壓縮)

 zip/unzip .zip (通用性最高,支持多個文件壓縮歸檔成一個文件)

1.gzip壓縮后的文件后綴名為.gz,壓縮完之后原文件會被自動刪除,gunzip解壓縮完成之后原壓縮包也會被自動刪除。語法格式為:gzip [OPTIONS] /PATH/TO/SOMEFILE …

    -#: 指明壓縮比;1-9,默認為6,數字越大,壓縮比越大(消耗CPU資源比越多,時間越慢);

    -d: decompress, 解壓縮, 相當于gunzip;

    -c: 將壓縮后的數據輸出至標準輸出;

    gzip -c /PATH/TO/SOMEFILE > /PATH/TO/SOMEFILE.gz

    -r: 遞歸至目錄中對每個文件進行壓縮;

    zcat /path/to/somefile.gz:無須顯式解壓縮查看壓縮文件的內容;

例:把500MB的a.txt文件進行gzip壓縮,命令為:gzip a.txt ,詳情見下圖:

blob.png

例:把2.1MB的a.txt.gz文件進行解壓還原成原文件,命令為:gunzip a.txt 或 gzip -d a.txt,詳情見下圖:

blob.png

例:把500MB的a.txt文件按最大比例進行gzip壓縮,命令為:gzip -9 a.txt ,詳情見下圖:

blob.png

例:a.txt壓縮后保留原文件并生成新文件b.txt.gz,命令為:gzip -c a.txt > b.txt.gz ,詳情見下圖:

blob.png

例:實現把test1目錄中所有的文件單獨壓縮成gz文件,命令為:gzip -r test1 ,詳情見下圖:

blob.png例:使用zcat命令可以不用解壓縮(理論上有可能解壓到內存或其他臨時目錄中,待驗證)直接查看functions.gz中的文件內容,命令為:zcat test1/functions.gz ,詳情見下圖:

blob.png

2.bzip2壓縮后的文件后綴名為.bz2,壓縮完之后原文件會被自動刪除,bunzip2解壓縮完成之后原壓縮包也會被自動刪除。語法格式為:bzip2 [OPTIONS] /PATH/TO/SOMEFILE…

    -#: 指明壓縮比;1-9,默認為6,數字越大,壓縮比越大;

    -d: decompress, 解壓縮, 相當于bunzip2;

    -k: 壓縮后保留原文件;

    bzcat /path/to/somefile.bz2:無須顯式解壓縮查看壓縮文件的內容;

例:把458MB的a.txt文件進行bzip2壓縮,命令為:bzip2 -k a.txt ,詳情見下圖:

blob.png

例:把1.8KB的a.txt.bz2文件進行解壓還原成原文件,命令為:bzip2 -d a.txt.bz2 或 bunzip2 a.txt.bz2,詳情見下圖:

blob.png

例:把458MB的a.txt文件按最大比例進行bzip2壓縮,命令為:bzip2 -9 a.txt ,詳情見下圖:

blob.png

例:使用bzcat命令可以不用解壓縮(理論上有可能解壓到內存或其他臨時目錄中,待驗證)直接查看a.txt.bz2中的文件內容,命令為:bzcat a.txt.bz2 ,詳情見下圖:

blob.png

3.xz壓縮后的文件后綴名為.xz,壓縮完之后原文件會被自動刪除,unxz解壓縮完成之后原壓縮包也會被自動刪除。語法格式為:xz [OPTIONS] /PATH/TO/SOMEFILE…

       -#: 指明壓縮比;1-9,默認為6,數字越大,壓縮比越大;

       -d: decompress, 解壓縮, 相當于bunzip2;

       -k: 壓縮后保留原文件;

       xzcat /path/to/somefile.xz:無須顯式解壓縮查看壓縮文件的內容;

例:把458MB的a.txt文件進行xz壓縮,命令為:xz -k a.txt ,詳情見下圖:

blob.png

例:把458MB的a.txt文件進行xz -1和xz-9壓縮,命令為:xz -k1 a.txt xz-k9 a.txt ,詳情見下圖:

blob.png

例:使用xzcat命令可以不用解壓縮(理論上有可能解壓到內存或其他臨時目錄中,待驗證)直接查看a.txt.xz中的文件內容,命令為:xzcat a.txt.xz ,詳情見下圖:

blob.png

4.zip壓縮后的文件后綴名為.zip,壓縮時必須手動指定壓縮后生成的壓縮包文件名,可以把多個文件壓縮歸檔成一個文件,壓縮完之后原文件會被自動刪除,unzip解壓縮完成之后原壓縮包也會被自動刪除。zip語法格式為:zip ZIP_FILE.zip /PATH/TO/SOMEFILE…

unzip語法格式為:unzip ZIP_FILE.zip

例:把458MB的a.txt和b.txt兩個文件合并壓縮成一個ab.zip壓縮包文件,命令為:zip ab.zip a.txt b.txt ,詳情見下圖:      

blob.png

例:把3.2MB的ab.zip壓縮包文件解壓還原成a.txt和b.txt文件,命令為:unzip ab.zip,詳情見下圖:

blob.png

5.歸檔可以將多個文件打包(合并)為單個文件以便于管理。默認不會執行壓縮。語法格式為:

歸檔:tar [OPTIONS] -c -f /PATH/TO/TARFILE.tar /PATH/TO/FILE…

歸檔:不會刪除原文件;

展開歸檔:tar -x -f /PATH/TO/TARFILE.tar [-C /PATH/TO/DIR]

查看被歸檔起來的文件列表:tar -t -f /PATH/TO/TARFILE.tar

注意:(1) 多個選項可以合并,但-f由于要帶參數,因此,應該放在最右側;如:-tf, -xf, -cf

(2) 選項的引導符-可省略;如:tar xf , tar zf中的-xf這個"-"可以省略。

例:把a.txt和b.txt兩個文件創建生成歸檔文件ab.tar(歸檔文件并不對原文件進行壓縮),

命令為:tar -cf ab.tar a.txt b.txt ,詳情見下圖:

blob.png

例:把ab.tar這個歸檔文件展開到bak目錄下,

命令為:tar -xf ab.tar -C ../bak ,詳情見下圖:

blob.png

例:不展開歸檔文件,直接查看歸檔文件包中的文件(只顯示文件列表,非文件內容),命令為:tar -tf ab.tar,詳情見下圖:

blob.png

blob.png

6.tar命令支持歸檔并壓縮,常用格式如下:

    -z: gzip

    后綴名: .tar.gz

    歸檔并壓縮:tar -zcf

    展開歸檔:tar -zxf 

     -j: bzip2

     后綴名: .tar.bz2

     歸檔并壓縮:tar -jcf

     展開歸檔: tar -jxf

     -J: xz

     后綴后: .tar.xz

     歸檔并壓縮: tar -Jcf

     展開歸檔: tar -Jxf

注意:展開歸檔可以直接使用tar -xf,而無須為其指定對應的壓縮工具選項。

例:把原文件直接歸檔并壓縮成.tar.gz格式的壓縮包,命令為:tar -zcf ab.tar.gz a.txt b.txt,詳情見下圖:

blob.png

例:對歸檔壓縮后的文件進行展開并解壓還原成原文件,指定解壓目錄為當前目錄,命令為:tar -zxf ab.tar.gz -C ./,詳情見下圖:

blob.png

例:把原文件直接歸檔并壓縮成.tar.bz2格式的壓縮包,命令為:tar -jcf ab.tar.bz2 a.txt b.txt,詳情見下圖:

blob.png例:對歸檔壓縮后的文件進行展開并解壓還原成原文件,指定解壓目錄為當前目錄,命令為:tar -jxf ab.tar.bz2 -C ./,詳情見下圖:

blob.png例:把原文件直接歸檔并壓縮成.tar.xz格式的壓縮包,命令為:tar -Jcf ab.tar.xz a.txt b.txt,詳情見下圖:

blob.png

例:對歸檔壓縮后的文件進行展開并解壓還原成原文件,指定解壓目錄為當前目錄,命令為:tar -Jxf ab.tar.xz -C ./ 或 tar -Jxf ab.tar.xz  (-C參數可省略,如省略則解壓到當前目錄下),詳情見下圖:

blob.png

原創文章,作者:鏡花水月,如若轉載,請注明出處:http://www.www58058.com/8330

(1)
鏡花水月鏡花水月
上一篇 2015-09-26 15:29
下一篇 2015-09-26 22:32

相關推薦

  • Linux文件系統

    Linux:glibc 程序編譯方式: 動態鏈接 靜態編譯 進程的類型: 終端:硬件設備,關聯一個用戶接口 與終端相關:通過終端啟動 與終端無關:操作引導啟動過程當中自動啟動 操作系統的組成: 靜態:kernel, application 文件系統:層級結構 FHS: Filesystem Hierarchy Standard /bin:所有用戶可用的基本命…

    Linux干貨 2016-11-10
  • 磁盤管理

    1、創建一個10G分區,并格式為ext4文件系統。 (1)虛擬機添加21G硬盤 Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1&nbsp…

    Linux干貨 2016-12-18
  • 用戶創建及權限管理

    1.列出當前系統上所有已經登錄的用戶的用戶名,注:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d ‘ ‘ -f1 | sort -u [root@localhost ~]# who danry :0 2017-07-16 23:20 (:0) danry pts/0 2017-07-16 23:23 (192.168…

    Linux干貨 2017-07-17
  • 馬哥教育網絡班21期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; %s/^([[:space:]]{1,}.*)/#\1/s 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行…

    Linux干貨 2016-08-10
  • 網絡接口配置-bonding

    bonding      就是將多塊網卡綁定同一個IP地址對外提供服務,可以實現高可用或是負載均衡,當 然,直接給兩塊網卡設置同一個IP地址是不可能的,通過bonding,虛擬一塊網卡對外提供鏈接,這樣即使一塊網卡壞了可以經行自動切換,而不會影響業務的正常的通信 Bonding的工作模式 mode 0 輪轉(…

    Linux干貨 2016-09-05
  • centos系統中常用的命令

    日志文件說明:  /var/log/message      系統啟動后的信息和錯誤日志,是Red Hat Linux中最常用的日志之一   /var/log/secure      &nb…

    Linux干貨 2016-06-28

評論列表(2條)

  • 云中鶴
    云中鶴 2015-09-26 22:45

    兄臺,問一下你的聯系方式,博客寫的這么好,像你學習啊。

  • Vicky
    Vicky 2015-09-27 16:06

    寫的很詳細,很認真,贊!

欧美性久久久久