Linux裏面的壓縮和解壓類指令

gzip/gunzip 指令 ( .gz  不能壓縮目錄)

gzip 用於壓縮文件, gunzip 用於解壓的 。linux

gzip

gzip命令用來壓縮文件。gzip是個使用普遍的壓縮程序,文件經它壓縮事後,其名稱後面會多處「.gz」擴展名。gzip是在Linux系統中常用的一個對文件進行壓縮和解壓縮的命令,既方便又好用。gzip不只能夠用來壓縮大的、較少使用的文件以節省磁盤空間,還能夠和tar命令一塊兒構成Linux操做系統中比較流行的壓縮文件格式。據統計,gzip命令對文本文件有60%~70%的壓縮率工具

沒有的話手動安裝測試

yum -y install zip gzip    (--安裝壓縮工具)

經常使用選項 ui

-c:-stdout在標準輸出上寫入,保持原始文件不變

-r:遞歸處理,將指定目錄下的全部文件及子目錄一併處理;

-v:顯示指令執行過程;

-d:解開壓縮文件;(decompression 解壓)

-a:使用ASCII文字模式;

-f:強行壓縮文件。不理會文件名稱或硬鏈接是否存在以及該文件是否爲符號鏈接;

-h:在線幫助;

-l:列出壓縮文件的相關信息;

-L:顯示版本與版權信息;

-n:壓縮文件時,不保存原來的文件名稱及時間戳記;

-N:壓縮文件時,保存原來的文件名稱及時間戳記;

-q:不顯示警告信息;

-S或<壓縮字尾字符串>或----suffix<壓縮字尾字符串>:更改壓縮字尾字符串;

-t:測試壓縮文件是否正確無誤;

-V:顯示版本信息;

-<壓縮效率>:壓縮效率是一個介於1~9的數值,預設值爲「6」,指定愈大的數值,壓縮效率就會愈高;

--best:此參數的效果和指定「-9」參數相同;

--fast:此參數的效果和指定「-1」參數相同。

基本語法       加密

gzip 文件     (功能描述:壓縮文件,只能將文件壓縮爲 *.gz 文件)      

應用實例      spa

壓縮到指定目錄 (須要加上參數 -c)操作系統

案例1: gzip壓縮, 將 /home下的 hello.txt文件進行壓縮            gzip /home/hello.txt.net

案例2: gzip壓縮, 將 /home下的 a.txt、b.txt、c.txt  文件進行壓縮3d

案例3:  把test目錄下的每一個文件壓縮成 .gz 文件。 gzip  *code

案例4:  把案例4中每一個壓縮的文件解壓,並列出詳細的信息。 gzip -dv *

案例5:  詳細顯示案例3中每一個壓縮的文件的信息,並不解壓。gzip -l *

案例6:  壓縮一個tar備份文件,此時壓縮文件的擴展名爲.tar.gz。gzip -r log.tar

案例7:  遞歸的壓縮目錄。gzip -rv test

這樣,全部test下面的文件都變成了*.gz目錄依然存在只是目錄裏面的文件相應變成了*.gz.這就是壓縮,和打包不一樣。由於是對目錄操做,因此須要加上-r選項,這樣也能夠對子目錄進行遞歸了。

案例9: 遞歸地解壓目錄。gzip -dr test

案例10:  爲了保留原有的文件,咱們能夠加上 -c 選項並利用 linux 的重定向 ,這樣不但能夠將原有的文件保留,並且能夠將壓縮包放到任何目錄中,解壓縮也同樣  。

壓縮到指定目錄: /home有兩個目錄 aaa bbb  aaa裏面有文件a.txt,我把a.txt壓縮到bbb目錄裏面。

gzip -c aaa/a.txt > bbb/test.gz
 

 把上面壓縮的 test.gz  解壓到指定 hehe 目錄   gunzip -c bbb/test.gz > hehe/test.txt

若是是放在當前目錄的話: gunzip -c bbb/test.gz > ./test.txt

細節說明

當咱們使用gzip對文件進行壓縮後,保留原來的文件

gunzip

gunzip命令用來解壓縮文件。gunzip是個使用普遍的解壓縮程序,它用於解開被gzip壓縮過的文件,這些壓縮文件預設最後的擴展名爲 .gz 。事實上gunzip就是gzip的硬鏈接,所以不管是壓縮或解壓縮,均可經過gzip指令單獨完成。( gzip –d等價於gunzip 命令)

基本語法      

gunzip 文件.gz    (功能描述:解壓縮文件命令)

經常使用選項

-a:使用ASCII文字模式;

-c:把解壓後的文件輸出到標準輸出設備;

-f:強行解開壓縮文件,不理會文件名稱或硬鏈接是否存在以及該文件是否爲符號鏈接;

-h:在線幫助;

-l:列出壓縮文件的相關信息;

-L:顯示版本與版權信息;

-n:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其忽略不予處理;

-N:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其回存到解開的文件上;

-q:不顯示警告信息;

-r:遞歸處理,將指定目錄下的全部文件及子目錄一併處理;

-S或<壓縮字尾字符串>或----suffix<壓縮字尾字符串>:更改壓縮字尾字符串;

-t:測試壓縮文件是否正確無誤;

-v:顯示指令執行過程;

-V:顯示版本信息;

 應用實例

案例1: gunzip壓縮, 將 /home下的 hello.txt.gz 文件進行解壓縮     gunzip hello.txt.gz

 


zip/unzip指令 .zip  

zip 用於壓縮文件, unzip 用於解壓的,這個在項目打包發佈中頗有用的 。

zip

zip 是咱們最經常使用的壓縮命令,經過該命令能夠將目錄或者文件壓縮成擴展名爲「 .zip 」的壓縮文件。 

經常使用選項

-r   遞歸處理,將指定目錄下的全部文件和子目錄進行壓縮。 
  -f   僅將源目錄下的發生變動的文件壓縮到zip文件中,源目錄下新增的文件不進行壓縮。
  -u   與-f參數相似,可是除了更新的文件外,也會將源目錄中的其它文件壓縮到zip文件中。
  -m   將文件壓縮到zip文件中,同時刪除目錄下的該文件。  
  -j   只保存文件名稱及其內容,丟棄目錄結構。
  -l   壓縮文件時,將 LF 字符置換成 LF+CR 字符。
  -ll  壓縮文件時,將 CR + LF 字符置換成 LF 字符。
  -1   壓縮效率,值爲1-9,1爲壓縮效率最高。
  -9   壓縮效率,值爲1-9,1爲壓縮效率最高。
  -v   顯示指令執行過程、顯示版本信息。
  -c   爲每一個被壓縮的文件增長註釋。
  -z   爲zip文件增長註釋。
  -o   以壓縮文件內擁有最新更改時間的文件爲準,將壓縮文件的更改時間設成和該文件相同。
  -x   不壓縮 -x 指定的文件。
  -i   只壓縮 -i 指定的文件。
  -D   壓縮文件內不創建目錄。
  -A   調整可執行的自動解壓縮文件。
  -J   刪除壓縮文件前面沒必要要的數據。
  -X   不保存額外的文件屬性。
  -y   直接保存符號鏈接,而非該鏈接所指向的文件。
  -e   採用標準的PKZip 2.0進行加密,提示輸入密碼。
  -n   不壓縮文件名以制定字符串結尾的文件。
  -h2  顯示詳細的幫助信息。

基本語法      

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]  
zip      [選項] XXX.zip  須要壓縮的內容(功能描述:壓縮文件和目錄的命令)

應用實例      

案例1:  將 /home下的 全部文件進行壓縮成 mypackage.zip    zip  -r  mypackage.zip  /home/   或者   zip  -r  mypackage.zip  /home/*        

案例2:  指定壓縮目錄    /home 有以下目錄。 zip -r aaa/test.zip bbb/

unzip

經過 unzip 命令將擴展名爲「 .zip 」的壓縮文件進行解壓縮。 

基本語法      

unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]
unzip [選項] XXX.zip    (功能描述:解壓縮文件)

經常使用選項      

-d  指定文件解壓縮後所要存儲的目錄。
  -p  小寫,將解壓縮的文件數據以二進制格式(存儲的格式)輸出到屏幕上。
  -P  大寫,使用 unzip 的密碼選項。
  -l  顯示壓縮文件內所包含的文件。
  -t  測試壓縮文件。
  -u  與-f參數相似,可是除了更新的文件外,也會將zip文件中的其它文件解壓縮到目錄中。    
  -z  顯示壓縮文件的註釋。
  -T  把 zip 文件中的最新的文件時間設置爲zip文件的timestamp。
  -x  不解壓 -x 指定的文件。
  -q  設置爲 quiet 模式。
  -qq 設置爲 quieter 模式。
  -o  沒必要先詢問用戶,直接覆蓋原有文件。   
  -a  將文本文件格式轉換爲本地操做系統的格式。
  -aa 將全部的文件做爲文本文件來對待。
  -U  啓用Unicode,顯示以十六進制的 #Uxxxx 或者 #Lxxxxxx 進行 ASCII 文本轉義的非本地字符。舊版本中 -U 將壓縮文件中的所有文件名改成大寫。
  -UU 啓用Unicode,禁用使用UTF-8存儲路徑。UTF-8路徑被處理成 Unicode 後,存儲爲本地路徑。
  -L  將壓縮文件中的所有文件名改成小寫。
  -X  解壓縮時恢復文件原來的UID/GID。            
  -V  保留VMS的文件版本信息。
  -M  將輸出結果送到 more 管道中。
  -hh 顯示詳細的幫助信息。

應用實例      

案例2:  將 mypackge.zip 解壓到 /opt/tmp 目錄下      unzip –d /opt/tmp  mypackage.zip   [若是/opt/tmp 不存在,會自動建立]


 tar 指令  

tar 指令 是打包指令,最後打包後的文件是 .tar.gz 的文件。 [能夠壓縮,和解壓]

基本語法

tar  [選項]  XXX.tar.gz  打包的內容/目錄   (功能描述:打包目錄,壓縮後的文件格式.tar.gz)  

選項說明      

選項 功能
-c 產生 .tar 打包文件
-v 顯示詳細信息
-f 指定壓縮後的文件名
-z 打包同時壓縮 (壓縮帶上)
-x 解包 .tar 文件 (解壓帶上)
-c: 創建壓縮檔案
-x:解壓
-t:查看內容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件

以上五個是獨立的命令參數,壓縮解壓都要用到其中一個,能夠和別的命令連用但只能用其中一個。下面的參數是根據須要在壓縮或解壓檔案時可選的。

-z:有gzip屬性的  gz
-j:有bz2屬性的   bz2
-J :有xz屬性的   xz
-Z:有compress屬性的

-v:顯示全部過程
-O:將文件解開到標準輸出

下面的參數-f是必須的

-f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。

應用實例      

案例1:   將全部 .jpg 的文件打成一個名爲all.tar的包。  tar -cf all.tar  *.jpg  -c 是表示產生新的包,-f 指定包的文件名。


案例2:   將全部 .gif 的文件增長到all.tar的包裏面去, tar -rf all.tar *.gif  -r是表示增長文件的意思。 (這樣解壓的話是沒有任何目錄的)

tar -rf all.tar  /home/photo/*.gif   這樣的話是有目錄的

案例3:   列出all.tar包中全部文件,  tar -tf all.tar    -t是列出文件的意思

案例3:   更新原來tar包 all.tar 中a.gif文件    tar -uf all.tar a.gif    -u是表示更新文件的意思。 

案例4:   解出all.tar包中全部文件, tar -xf all.tar   -x是解開的意思

案例5:  將目錄裏全部jpg文件打包成 tar.jpg 。tar -cvf jpg.tar *.jpg

案例6:  將目錄裏全部jpg文件打包成jpg.tar後,而且將其用gzip壓縮,生成一個gzip壓縮過的包,命名爲jpg.tar.gz 。

tar -czf jpg.tar.gz *.jpg

案例7:  將目錄裏全部jpg文件打包成jpg.tar後,而且將其用bzip2壓縮,生成一個bzip2壓縮過的包,命名爲jpg.tar.bz2。

tar -cjf jpg.tar.bz2 *.jpg

案例8:  將目錄裏全部jpg文件打包成jpg.tar後,而且將其用compress壓縮,生成一個umcompress壓縮過的包,命名爲jpg.tar.Z。tar -cZf jpg.tar.Z *.jpg

案例9:  rar格式的壓縮,須要先下載rar for linux。rar a jpg.rar *.jpg

案例10:  zip格式的壓縮,須要先下載zip for linux。zip jpg.zip *.jpg

tar -xvf file.tar                    //解壓 tar包

tar -xzvf file.tar.gz             //解壓tar.gz

tar -xjvf file.tar.bz2            //解壓 tar.bz2

tar -xZvf file.tar.Z              //解壓tar.Z

tar -Jxvf fle.tar.xz              //解壓tar.xz

unrar e file.rar                   //解壓rar

unzip file.zip                      //解壓zip

案例11:  壓縮多個文件,將 /home/a1.txt 和 /home/a2.txt 壓縮成  a.tar.gz     tar -zcvf a.tar.gz a1.txt a2.txt

 

案例12:  將/home 全部的文件夾壓縮成 myhome.tar.gz    tar -zcvf myhome.tar.gz  /home/ 

案例13:   將 a.tar.gz  解壓到當前目錄       tar -zxvf a.tar.gz  

案例14: 將myhome.tar.gz  解壓到 /opt/tmp2目錄下   tar -zxvf myhome.tar.gz -C  /opt/temp2 (temp2 須要手動建立)

細節:

指定解壓到的那個目錄,事先要存在才能成功,不然會報錯。

總結

       一、*.tar 用 tar -xvf 解壓

       二、*.gz 用 gzip -d或者gunzip 解壓

       三、*.tar.gz和*.tgz 用 tar -xzf 解壓   tar.xz  用 tar -Jxvf 解壓

       四、*.bz2 用 bzip2 -d或者用bunzip2 解壓

       五、*.tar.bz2用tar -xjf 解壓

       六、*.Z 用 uncompress 解壓

       七、*.tar.Z 用tar -xZf 解壓

       八、*.rar 用 unrar e解壓

       九、*.zip 用 unzip 解壓

來源:https://blog.csdn.net/qq_40794973/article/details/86499246

相關文章
相關標籤/搜索