1.功能說明
將一般的文件或者目錄進行壓縮或者解壓,默認生成以“.zip”為後綴的壓縮包。zip命令類似於Windows中的winzip壓縮程序。其格式如下:
zip [選項] 壓縮文件名 需要壓縮的文檔列表
unzip [選項] 壓縮文件名
zip命令的選項及其說明如表4.27所示。
表4.27 zip命令的選項及其說明
選 項 含 義
-r 遞歸壓縮,將指定目錄下的所有文件以及子目錄全部壓縮
-d 從壓縮文件內刪除指定的文件
-i “文件列表” 只壓縮文件列表中的文件
-x “文件列表” 壓縮時排除文件列表中指定的文件
-u 更新文件到壓縮文件中
-m 將文件加入壓縮文件壓縮後,刪除原始文件,即把文件移到壓縮文件中
-F 嘗試修復損壞的壓縮文件
-T 檢查壓縮文件內的每個文件是否正確無誤
- 壓縮級別 壓縮級別是一個1~9的數字
unzip命令的選項及其說明如表4.28所示。
表4.28 unzip命令的選項及其說明
選 項 含 義
-x "文件列表" 解壓文件,但不包含文件列表中指定的文件
-t 測試壓縮文件有無損壞,並不解壓
-v 查看壓縮文件的詳細信息,具體包括壓縮文件中包含的文件大小、文件名和壓縮比等,並不解壓
-n 解壓時不覆蓋已經存在的文件
-o 解壓時覆蓋已經存在的文件,並且不要求用戶確認
-d 目錄名 把壓縮文件解壓到指定目錄下
2.舉例
(1)將/etc目錄下的所有文件以及目錄進行壓縮,設置壓縮級別為最高,保存到文件/opt/etc.zip。
[root@mylinux ~]# zip -9r /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