天天看點

解壓歸檔檔案linux,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 ,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

例:a.txt壓縮後保留原檔案并生成新檔案b.txt.gz,指令為:gzip -c a.txt > b.txt.gz ,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

例:實作把test1目錄中所有的檔案單獨壓縮成gz檔案,指令為:gzip -r test1 ,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

例:使用zcat指令可以不用解壓縮(理論上有可能解壓到記憶體或其他臨時目錄中,待驗證)直接檢視functions.gz中的檔案内容,指令為:zcat test1/functions.gz ,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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 ,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

例:使用bzcat指令可以不用解壓縮(理論上有可能解壓到記憶體或其他臨時目錄中,待驗證)直接檢視a.txt.bz2中的檔案内容,指令為:bzcat a.txt.bz2 ,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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 ,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

例:使用xzcat指令可以不用解壓縮(理論上有可能解壓到記憶體或其他臨時目錄中,待驗證)直接檢視a.txt.xz中的檔案内容,指令為:xzcat a.txt.xz ,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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 ,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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 ,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

例:不展開歸檔檔案,直接檢視歸檔檔案包中的檔案(隻顯示檔案清單,非檔案内容),指令為:tar -tf ab.tar,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結
解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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,詳情見下圖:

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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

解壓歸檔檔案linux,Linux檔案壓縮、解壓、歸檔總結

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