天天看點

linux下壓縮與解壓(zip、unzip、tar)詳解

最近經常在linux上進行打包壓縮解壓,從網上收集整理并結合自己的常用的,跟大家分享一下下,廢話不多說,進入正題。

1、zip 壓縮

如果是直接壓縮幾個檔案,那就可以直接使用指令 zip newfilename.zip filename1 filename2,但是一般情況下都會壓縮一個檔案夾或者叫目錄,使用指令zip -r newfilename.zip file1 file2。如果檔案夾下面包含太多的檔案,可以使用-q選項,不現實壓縮的過程,即zip -q -r newfilename.zip file1 file2。

一般來講,-q選項和-r選項已經夠用了,如果還要了解更詳細的,文章末尾有詳解。

舉例:

将/root/test檔案夾下的test1檔案夾和test2.txt壓縮到 aaa.zip

在/root/test目錄下,執行指令

zip -q -r aaa.zip test1 test2.txt

OK!壓縮完成!

2、unzip解壓縮

一般來講,unzip指令常用的選項是-o和-d選項,其餘的可以在詳解中檢視

-o選項,不詢問使用者,直接覆寫原檔案

-d選項,使用者可以指定一個解壓到指定目錄

在/root/test/目錄下,有aaa.zip壓縮檔案

如果要覆寫原來的test1和test2.txt,則,執行指令

unzip -o aaa.zip

如果要保留原來的檔案,把解壓後的檔案存放在/root/test2目錄下,則執行指令

unzip -o -d /root/test2/ ./aaa.zip

3、tar指令

常用的tar指令的組合選項是

tar -xzvf filename.tar.gz

tar -czvf filename.tar.gz file1 file2 ...

-f選項必須出現在選項參數的最後

-c:建立壓縮檔案

-x:解壓

-t:檢視内容

-r:向壓縮歸檔的檔案末尾追加檔案

-u:更新原壓縮包中的檔案

這五個是獨立的選項,壓縮解壓都要用到其中一個,可以和别的選項一起使用,但是這5個隻能出現其中一個

-v:壓縮解壓過程中顯示檔案

-f: 使用檔名,注,f選項後必須跟文檔名不能跟其他選項,知道為什麼f 選項,總是在參數選項的最後一個出現了吧

-j :是否同時具有 bzip2 的屬性?亦即是否需要用 bzip2 壓縮?

-p :使用原檔案的原來屬性(屬性不會依據使用者而變)

-P :可以使用絕對路徑來壓縮!

-N :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進建立的檔案中!

--exclude FILE:在壓縮的過程中,不要将 FILE 打包!

個人感覺tar指令相對而言功能比較強大,在linux下,tar指令的運用遠多于zip。

zip指令詳解

-a 将檔案轉成ASCII模式 

-F 嘗試修複損壞的壓縮檔案 

-h 顯示幫助界面 

-m 将檔案壓縮之後,删除源檔案 

-n 特定字元串 不壓縮具有特定字尾字元串的檔案 

-o 将壓縮檔案内的所有檔案的最新變動時間設為壓縮時候的時間 

-q 安靜模式,在壓縮的時候不顯示指令的執行過程 

-r 将指定的目錄下的所有子目錄以及檔案一起處理 

-S 包含系統檔案和隐含檔案(S是大寫) 

-t 日期 把壓縮檔案的最後修改日期設為指定的日期,日期格式為mmddyyyy

unzip詳解

-c 将解壓縮的結果顯示到螢幕上,并對字元做适當的轉換。

-f 更新現有的檔案。

-l 顯示壓縮檔案内所包含的檔案。

-p 與-c參數類似,會将解壓縮的結果顯示到螢幕上,但不會執行任何的轉換。

-t 檢查壓縮檔案是否正确。

-u 與-f參數類似,但是除了更新現有的檔案外,也會将壓縮檔案中的其他檔案解壓縮到目錄中。

-v 執行是時顯示詳細的資訊。

-z 僅顯示壓縮檔案的備注文字。

-a 對文本檔案進行必要的字元轉換。

-b 不要對文本檔案進行字元轉換。

-C 壓縮檔案中的檔案名稱區分大小寫。

-j 不處理壓縮檔案中原有的目錄路徑。

-L 将壓縮檔案中的全部檔案名改為小寫。

-M 将輸出結果送到more程式處理。

-n 解壓縮時不要覆寫原有的檔案。

-o 不必先詢問使用者,unzip執行後覆寫原有檔案。

-P<密碼> 使用zip的密碼選項。

-q 執行時不顯示任何資訊。

-s 将檔案名中的空白字元轉換為底線字元。

-V 保留VMS的檔案版本資訊。

-X 解壓縮時同時回存檔案原來的UID/GID。

-d<目錄> 指定檔案解壓縮後所要存儲的目錄。

-x<檔案> 指定不要處理.zip壓縮檔案中的哪些檔案。

-Z unzip -Z等于執行zipinfo指令

本文轉自 guowang327 51CTO部落格,原文連結:http://blog.51cto.com/guowang327/1783876,如需轉載請自行聯系原作者

繼續閱讀