一、簡介
壓縮對我們來說通常意味著減小文件體積,節省硬盤空間。在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 ,詳情見下圖:
例:把2.1MB的a.txt.gz文件進行解壓還原成原文件,命令為:gunzip a.txt 或 gzip -d a.txt,詳情見下圖:
例:把500MB的a.txt文件按最大比例進行gzip壓縮,命令為:gzip -9 a.txt ,詳情見下圖:
例:a.txt壓縮后保留原文件并生成新文件b.txt.gz,命令為:gzip -c a.txt > b.txt.gz ,詳情見下圖:
例:實現把test1目錄中所有的文件單獨壓縮成gz文件,命令為:gzip -r test1 ,詳情見下圖:
例:使用zcat命令可以不用解壓縮(理論上有可能解壓到內存或其他臨時目錄中,待驗證)直接查看functions.gz中的文件內容,命令為:zcat test1/functions.gz ,詳情見下圖:
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 ,詳情見下圖:
例:把1.8KB的a.txt.bz2文件進行解壓還原成原文件,命令為:bzip2 -d a.txt.bz2 或 bunzip2 a.txt.bz2,詳情見下圖:
例:把458MB的a.txt文件按最大比例進行bzip2壓縮,命令為:bzip2 -9 a.txt ,詳情見下圖:
例:使用bzcat命令可以不用解壓縮(理論上有可能解壓到內存或其他臨時目錄中,待驗證)直接查看a.txt.bz2中的文件內容,命令為:bzcat a.txt.bz2 ,詳情見下圖:
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 ,詳情見下圖:
例:把458MB的a.txt文件進行xz -1和xz-9壓縮,命令為:xz -k1 a.txt xz-k9 a.txt ,詳情見下圖:
例:使用xzcat命令可以不用解壓縮(理論上有可能解壓到內存或其他臨時目錄中,待驗證)直接查看a.txt.xz中的文件內容,命令為:xzcat a.txt.xz ,詳情見下圖:
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 ,詳情見下圖:
例:把3.2MB的ab.zip壓縮包文件解壓還原成a.txt和b.txt文件,命令為:unzip ab.zip,詳情見下圖:
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 ,詳情見下圖:
例:把ab.tar這個歸檔文件展開到bak目錄下,
命令為:tar -xf ab.tar -C ../bak ,詳情見下圖:
例:不展開歸檔文件,直接查看歸檔文件包中的文件(只顯示文件列表,非文件內容),命令為:tar -tf ab.tar,詳情見下圖:
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,詳情見下圖:
例:對歸檔壓縮后的文件進行展開并解壓還原成原文件,指定解壓目錄為當前目錄,命令為:tar -zxf ab.tar.gz -C ./,詳情見下圖:
例:把原文件直接歸檔并壓縮成.tar.bz2格式的壓縮包,命令為:tar -jcf ab.tar.bz2 a.txt b.txt,詳情見下圖:
例:對歸檔壓縮后的文件進行展開并解壓還原成原文件,指定解壓目錄為當前目錄,命令為:tar -jxf ab.tar.bz2 -C ./,詳情見下圖:
例:把原文件直接歸檔并壓縮成.tar.xz格式的壓縮包,命令為:tar -Jcf ab.tar.xz a.txt b.txt,詳情見下圖:
例:對歸檔壓縮后的文件進行展開并解壓還原成原文件,指定解壓目錄為當前目錄,命令為:tar -Jxf ab.tar.xz -C ./ 或 tar -Jxf ab.tar.xz (-C參數可省略,如省略則解壓到當前目錄下),詳情見下圖:
原創文章,作者:鏡花水月,如若轉載,請注明出處:http://www.www58058.com/8330
兄臺,問一下你的聯系方式,博客寫的這么好,像你學習啊。
寫的很詳細,很認真,贊!