unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s)…] [-x xfile(s)…] [-d exdir]
unzip將列出、測試或從ZIP存檔中提取文件,這些文件通常位於MS-DOS系統上。默認行為(就是沒有選項)是從指定的ZIP存檔中提取所有的文件到當前目錄(及其下面的子目錄)。一個配套程序zip(1L)創建ZIP存檔;這兩個程序都與PKWARE的PKZIP和PKUNZIP為MS-DOS創建的存檔文件兼容,但許多情況下,程序選項或默認行為是不同的。
(1).參數
file[.zip] ZIP存檔的路徑。如果文件規范是通配符,則按操作系統(或文件系統)確定的順序處理每個匹配的文件。只有文件名可以是通配符,路徑本身不可以。通配符表達式類似於常用的Unix Shell(sh,ksh,csh)中支持的表達式,可能包含:
* 匹配0個或更多字符的序列
? 匹配1個字符
[…] 匹配括號內的任何單個字符;范圍由起始字符,連字符和結束字符指定。如果感嘆號或插入符號(”!”或”^”)在左括號后面,則括號內的字符范圍將被補充(即除括號內的字符之外的任何內容都被視為匹配)。要指定一個左括號,必須使用”[[]”
(請務必引用可能由操作系統解釋或修改的任何字符,特別是在UNIX和VMS下。)如果未找到匹配項,則假定規范是文本文件名;如果失敗,則附加后綴.zip。注意,與其他任何ZIP存檔一樣,支持自解壓ZIP文件;只要明確指定.exe后綴(如果有)。
[file(s)] 要處理的可選存檔成員列表,以空格分隔。(使用VMSCLI定義編譯的VMS版本必須使用逗號分隔文件。請參閱(2).選項中的-v選項)正則表達式(通配符)可用於匹配多個成員。同樣,請務必引用可由操作系統擴展或修改的表達式
[-x xfile(s)] 要從處理中排除的可選存檔成員列表。由於通配符通常匹配(’/’)目錄分隔符(如有例外,請參閱-W選項),此選項可用於排除子目錄中的所有文件。例如,”unzip foo *.[ch] -x */*”將提取主目錄中所有C源文件,但不提取任何子目錄中的所有C源文件。如果沒有-x選項,將提取zip文件中的所有目錄中的所有C源文件。
[-d exdir] 可提取文件的可選目錄。默認情況下,在當前目錄中重新創建所有文件和子目錄;-d選項運行在任意目錄中提取(總是假設有一個人有權寫入目錄)。這個選項不需要出現在命令行的末尾;它也接受在zipfile格式之前(使用常規選項),zipfile格式之后或文件與-x選項之間。選項和目錄可以連接在一起,它們之間沒有任何空格,但請注意,這可能會導致正常的shell行為被抑制。特別是Unix C shell將”-d ~”(代字號)擴展為用戶主目錄的名稱,但”-d ~”被視為當前目錄的文本子目錄”~”。
(2).選項
注意:為了支持過時的硬件,解壓縮的使用屏幕限制為22或23行,因此應該僅考慮基本解壓縮語法的提醒,而不是所有可能標志的詳盡列表。
-Z zipinfo(1L)模式。如果命令行上的第一個選項是-Z,則其余選項將被視為zipinfo(1L)選項。
-A [OS/2,Unix DLL]打印DLL編程接口(API)的擴展幫助。
-c 將文件解壓縮到標准輸出/屏幕(”CRT”)此選項與-p選項類似,不同在於提取時打印每個文件的名稱,允許使用-a選項,並且如果合適,將自動執行ASCII-EBCDIC轉換。此選項未在解壓縮用法屏幕中列出。
-f 刷新現有文件,即僅提取磁盤上已存在且比磁盤副本新的文件。在覆蓋之前默認解壓縮查詢,但可以使用-o選項來禁止查詢。請注意,在許多操作系統下,必須正確配置TZ(時區)環境變量才能使-f和-u正常工作(在Unix下,變量通常會自動設置)。造成這種情況的原因有點微妙,但與DOS格式的文件時間(總是本地時間)和Unix格式的時間(總是以GMT/UTC)之間的差異以及比較兩者的必要性有關。典型的TZ值是”PST8PDT”(美國太平洋時間,對夏令時或夏令時自動調整)
-l 列出存檔文件(短格式)。打印指定文件的名稱、未壓縮文件大小、修改時間和次數,以及指定的所有文件總數。如果在定義了OS2_EAS情況下編譯了UnZip,則-l選項還會列出存儲的OS/2擴展屬性(EAs)和OS/2訪問控制列表(ACL)的大小的列。此外,還會顯示zipfile注釋和單個文件注釋(如果有)。如果文件是從單個案例文件系統(例如,舊的MS-DOS FAT文件系統)存檔並且給出了-L選項,則文件名稱將轉換為小寫並與插入符號(^)為前綴
-p 將文件提取到管道(標准輸出)。除了將文件發送到標准輸出外,文件總是以二進制格式提取,就像它們被存儲一樣(沒有轉換)。
-t 測試存檔文件。此選項提取內存中的內個指定文件,並將擴展文件的CRC(循環冗余校驗,一個增強的校驗和)與原始文件的存儲CRC值進行比較。
-T [大多數操作系統]將存檔上的時間戳設置為每個存檔中最新文件的時間戳。這與zip的-go選項相對應,只是可以在zip文件上使用通配符(例如,’unzip -T \*.zip’),而且速度更快
-u 更新現有文件並根據需要創建新文件。此選項執行與-f選項相同的功能,通過查詢提取在磁盤上具有相同名稱但更新的文件,此外它還提取磁盤上沒有的那些文件。有關正確設置時區信息,參考-f選項
-v 列出存檔文件(詳細格式)或顯示版本信息。此選項現在既可以作為選項也可以作為修飾符。作為選項時,當指定zip文件而沒有其他選項時,-v詳細列出存檔文件,包括基礎的-l選項列出的信息,還包括壓縮方法、壓縮大小、壓縮比和32位CRC。與大多數有競爭關系的工具不同,解壓縮從壓縮的大小編號中刪除了另外12個加密條目的頭字節。因此壓縮大小和壓縮數字比與條目的加密狀態無關,並且顯示正確的壓縮性能。(zip文件條目的加密壓縮數據流的完整大小有更詳細的zipinfo報告。)當沒有指定zip文件時(即”unzip -v”),打印版本信息。
-z 僅顯示存檔注釋
(3).修飾符
-n 從不覆蓋現有文件
-q 安靜模式(-qq=>安靜)
-o 在不提示的情況下覆蓋文件
-a 自動轉換任何文本文件
-j 垃圾路徑(不生成目錄)
-aa 將所有文件視為文本
-U 對所有非ASCII Unicode使用轉義符
-UU 忽略任何Unicode字段
-C 不敏感匹配文件名大小寫
-L 將某些名稱改為小寫
-X 還原UID/GID信息
-V 保留VMS版本號
-K 保留setuid/setgid/tacky權限
-M 應該是類似使用more分頁(?)
-O CHARSET 指定DOS、Windows和OS/2存檔的字符編碼
-I CHARSET 為unix和其他存檔指定字符編碼
(4).實例
解壓到當前目錄下
[root@xuexi ~]# unzip grub.zip Archive: grub.zip creating: boot/grub/ inflating: boot/grub/splash.xpm.gz
解壓到指定目錄下
[root@xuexi ~]# unzip grub.zip -d /opt/ Archive: grub.zip creating: /opt/boot/grub/ inflating: /opt/boot/grub/splash.xpm.gz
(5).擴展
zip命令簡單了解一下,Linux很少用到
zip命令壓縮文件
[root@xuexi ~]# zip passwd.zip /etc/passwd adding: etc/passwd (deflated 61%)
zip命令壓縮文件夾
[root@xuexi ~]# zip -r grub.zip /boot/grub adding: boot/grub/ (stored 0%) adding: boot/grub/splash.xpm.gz (deflated 87%)
