linux unzip 命令

1.命令簡介

unzip 命令用於列出、測試和提取 ZIP 存檔中的壓縮文件。如果 unzip 不跟任何選項(默認行爲),會將指定的 ZIP 存檔文件解壓到當前目錄。

2.命令格式

unzip [-Z] [OPTIONS] [ZIP_FILE...] [FILE...]  [-x FILE...] [-d EXDIR]

[ZIP_FILE…] 表示 ZIP 存檔文件,[FILE…] 表示待處理的 ZIP 存檔文件中的文件列表,[-x FILE…] 表示不處理的文件列表,[-d EXDIR] 表示解壓縮後的文件存放的目錄。文件名均可使用通配符表示。

注意,unzip 可以不跟任何選項和參數,單獨執行 unzip 將打印簡要幫助信息。

3.選項說明

長選項的強制參數對於短選項也是強制的。下面主要介紹了通用選項和 Linux 平臺的選項,其它平臺(VMS、MS-DOS、MacOS 等)的專用選項參見 unzip(1) 手冊。

-Z
	等於執行 zipinfo(1) 命令,用於查看 zip 文件的整體信息
-c
	將解壓縮後的文件內容輸出到標準輸出(屏幕),並對字符做適當的轉換。類似於 -p 選項,但是 -c 會輸出文件名
-f
	更新現有的文件,即只提取那些已經存在於磁盤上且比磁盤副本更新的文件
-l
	只顯示壓縮文件內所包含的文件不解壓
-p
	與 -c 選項類似,以二進制模式解壓文件,不會執行任何的轉換,並將文件內容輸出到標準輸出(屏幕)
-t
	對文件進行 CRC 校驗檢查壓縮文件是否正確
-u
	與 -f 參數類似,但是除了更新現有的文件外,也會將壓縮文件中的其他文件解壓出來
-v
	執行時顯示詳細的信息
-z
	僅顯示壓縮文件的備註信息
-a
	對文本文件進行必要的字符轉換
-b
	將所有文件視爲二進制文件,不對文本文件進行字符轉換
-B
	對本地即將被覆蓋的文件進行備份
-C
	匹配命令行指定的待提取的文件列表時不區分大小寫
-D
	不還原提取項的時間戳。正常情況,unzip 會恢復提取項的時間信息(Access Time、Modify Time 和 Change Time)
-j
	不生成提取項的目錄,即所有提取項均放到同級目錄下
-L
	將壓縮文件中的全部文件名改爲小寫
-M
	將所有輸出通過 unzip 內部的類似於 more(1) 的瀏覽工具進行瀏覽
-n
	永遠不要覆蓋現有文件。如果文件已經存在,則跳過該文件的提取而不提示。默認情況下,unzip 會進行詢問是否提取、覆蓋或重命名
-o
	覆蓋現有文件而不提示
-P PASSWORD
	使用密碼解密 zip 文件
-q
	執行時不顯示任何信息
-s
	將文件名中的空白字符轉換爲下劃線
-U	
	修改或禁用UTF-8處理。當 UNICODE_SUPPORT 可用時,選項 -U 強制 unzip 將 UTF-8 編碼的文件名中的所有非 ASCII 字符轉義爲 #uxxx(對於UCS-2字符,或者對於需要 3 個字節的 UNICODE 碼點轉爲 #Lxxxxxx)。此選項主要用於在懷疑提取 UTF-8 編碼文件名時會失敗而進行的調試行爲
-W
	修改通配符 ?(單字符統配符)與 *(多字符通配符) 的匹配行爲,使得 ? 與 * 不能匹配目錄的分隔符 /。如 "*.c" 匹配 "foo.c",但不能匹配 "mydir/foo.c"
-X
	解壓縮時同時恢復文件原來的 UID/GID
-:
	允許創建提取項的父目錄 ../,默認情況下爲了安全起見是不允許的。使用該選項應格外小心
-^
	允許在提取的 ZIP 存檔項的名稱中使用控制字符

4.常用示例

首先使用 zip 命令對文件 /etc/passwd 和 /etc/group 進行壓縮生成 test.zip 文件,同時使用 -z 選項爲 zip 文件添加註釋說明。

zip test.zip /etc/passwd /etc/group
  adding: etc/passwd (deflated 58%)
  adding: etc/group (deflated 45%)
enter new zip file comment (end with .):
this is test.zip's comment
.

(1)使用 -Z 選項查看 ZIP 歸檔文件 test.zip 的整體信息。

unzip -Z test.zip
Archive:  test.zip
Zip file size: 1321 bytes, number of entries: 2
-rw-r--r--  3.0 unx     1552 tx defN 19-Jan-04 14:56 etc/passwd
-rw-r--r--  3.0 unx      642 tx defN 19-Jan-04 14:56 etc/group
2 files, 2194 bytes uncompressed, 1005 bytes compressed:  54.2%

(2)將壓縮文件解壓縮至當前目錄。

unzip test.zip

(3)如果當前目錄存在同名的文件,解壓縮時不覆蓋原有文件。

unzip -n test.zip

(4)解壓縮時覆蓋原有文件,不進行詢問。

unzip -o test.zip

(5)將壓縮文件解壓縮至指定目錄。

mkdir dir
unzip test.zip -d dir

(6)僅顯示 zip 文件的註釋說明,不解壓。

unzip -z test.zip
Archive:  test.zip
this is test.zip's comment

(7)僅查看 zip 文件中的文件列表,不解壓。

unzip -l test.zip
Archive:  test.zip
this is test.zip's comment
  Length      Date    Time    Name
---------  ---------- -----   ----
     1552  01-04-2019 14:56   etc/passwd
      642  01-04-2019 14:56   etc/group
---------                     -------
     2194                     2 files
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章