最近經常在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,如需轉載請自行聯系原作者