好文鏈接:https://www.cnblogs.com/yinzhengjie/p/6247833.html
原文鏈接:https://www.cnblogs.com/ferryCaptain-cloud/p/7440200.html
功能說明:壓縮文件。
語 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工 作目錄>][-ll][-n <字 尾字符串>][-t <日 期時間>][-<壓 縮效率>][壓 縮文件][文件...][-i <范本樣式>][-x <范本樣式>]
補充說明:zip是個使用廣泛的壓縮程序,文件經它壓縮后會另外產生具 有".zip"擴展名 的壓縮文件。
參 數:
-A 調 整可執行的自動解壓縮文件。
-b<工作目錄> 指 定暫時存放文件的目錄。
-c 替 每個被壓縮的文件加上注釋。
-d 從 壓縮文件內刪除指定的文件。
-D 壓 縮文件內不建立目錄名稱。
-f 此 參數的效果和指定"-u"參 數類似,但不僅更新既有文件,如果某些文件原本不存在於壓縮文件內,使用本參數會一並將其加入壓縮文件中。
-F 嘗 試修復已損壞的壓縮文件。
-g 將 文件壓縮后附加在既有的壓縮文件之后,而非另行建立新的壓縮文件。
-h 在 線幫助。
-i<范本樣式> 只 壓縮符合條件的文件。
-j 只 保存文件名稱及其內容,而不存放任何目錄名稱。
-J 刪 除壓縮文件前面不必要的數據。
-k 使 用MS-DOS兼容格 式的文件名稱。
-l 壓 縮文件時,把LF字符 置換成LF+CR字 符。
-ll 壓 縮文件時,把LF+CR字 符置換成LF字符。
-L 顯 示版權信息。
-m 將 文件壓縮並加入壓縮文件后,刪除原始文件,即把文件移到壓縮文件中。
-n<字尾字符串> 不 壓縮具有特定字尾字符串的文件。
-o 以 壓縮文件內擁有最新更改時間的文件為准,將壓縮文件的更改時間設成和該文件相同。
-q 不顯 示指令執行過程。
-r 遞 歸處理,將指定目錄下的所有文件和子目錄一並處理。
-S 包 含系統和隱藏文件。
-t<日期時間> 把 壓縮文件的日期設成指定的日期。
-T 檢 查備份文件內的每個文件是否正確無誤。
-u 更 換較新的文件到壓縮文件內。
-v 顯 示指令執行過程或顯示版本信息。
-V 保 存VMS操作系統的文 件屬性。
-w 在 文件名稱里假如版本編號,本參數僅在VMS操 作系統下有效。
-x<范本樣式> 壓 縮時排除符合條件的文件。
-X 不 保存額外的文件屬性。
-y 直 接保存符號連接,而非該連接所指向的文件,本參數僅在UNIX之 類的系統下有效。
-z 替 壓縮文件加上注釋。
-$ 保 存第一個被壓縮文件所在磁盤的卷冊名稱。
-<壓縮效率> 壓 縮效率是一個介於1-9的 數值。
例子
例1. 壓縮test.MYI
將/root/mcw_test/這個目錄下所有文件和文件夾打包為當前目錄下的 mcw.zip:
zip -q -r mcw.zip /root/mcw_test
[root@xiaoma /root/xiaoma] test! #ls -F /root/mcw_test/ 1.sh ma.txt xiaoma_guohe/ 魔降風雲變.txt [root@xiaoma /root/xiaoma] test! #zip -q -r mcw.zip /root/mcw_test [root@xiaoma /root/xiaoma] test! #ls mcw.zip
如果在我們在 /root/mcw_test/目錄下,可以執行以下命令:
zip -d mcw.zip root/mcw_test/ma.txt
[root@xiaoma /root/mcw_test] test! #zip -q -r mcw.zip * [root@xiaoma /root/mcw_test] test! #ls -F 1.sh ma.txt mcw.zip xiaoma_guohe/ 魔降風雲變.txt
從壓縮文件 mcw.zip 中刪除文件 ma.txt
zip -d mcw.zip root/mcw_test/ma.txt
[root@xiaoma /root/mcw_test/mcw] test! #ls /root/mcw_test/ 1.sh ma.txt mcw mcw.zip xiaoma_guohe 魔降風雲變.txt [root@xiaoma /root/mcw_test/mcw] test! #zip -q -r mcw.zip /root/mcw_test/* [root@xiaoma /root/mcw_test/mcw] test! #zip -d mcw.zip root/mcw_test/ma.txt deleting: root/mcw_test/ma.txt [root@xiaoma /root/mcw_test/mcw] test! #unzip mcw.zip ;ls root/mcw_test/ Archive: mcw.zip inflating: root/mcw_test/1.sh creating: root/mcw_test/mcw/ extracting: root/mcw_test/mcw.zip creating: root/mcw_test/xiaoma_guohe/ extracting: root/mcw_test/魔降風雲變.txt 1.sh mcw mcw.zip xiaoma_guohe 魔降風雲變.txt
(1)將/etc目錄下的所有文件以及目錄進行壓縮,設置壓縮級別為最高,保存到文件/opt/etc.zip。
[root@mylinux ~]# zip -r /opt/etc.zip /etc
(2)將/var目錄中所有文件以及子目錄壓縮,除了“*.log”的文件,將壓縮文件保存到/opt目錄下。
[root@mylinux ~]#zip –r /opt/var.zip /var –x “*.log”
(3)將上面/opt/etc.zip中的etc/passwd文件從壓縮包中刪除。
[root@mylinux ~]#zip /opt/etc.zip –d etc/passwd
deleting: etc/passwd
(4)修改了/etc/inittab文件,希望把更改信息更新到/opt/etc.zip包中。
[root@mylinux ~]#zip –u /opt/etc.zip /etc/inittab
如果/etc目錄下很多文件進行了修改或者增加了很多文件,就需要把/etc目錄下的全部信息更新到/opt/etc.zip文件。可以使用以下命令:
[root@mylinux ~]#zip –u /opt/etc.zip /etc/* 或者使用
[root@mylinux ~]# zip –ru /opt/etc.zip /etc
看出點玄機了嗎?在上例中,其實“/etc/*”就代表了/etc目錄下的所有文件以及子目錄,而這剛好是zip命令“-r”選項完成的功能。
(5)將/opt/etc.zip壓縮文件全部解壓到/etc目錄下,除了etc/inittab文件,並且在解壓過程中如果出現相同的文件就直接進行覆蓋,不要求用戶確認。可以使用以下命令:
[root@mylinux ~]#unzip –o /opt/etc.zip –x etc/inittab –d /etc