1. 前言
本文主要講解在linux下如何使用解壓縮命令解壓zip文件
2. unzip命令簡介
unzip命令是用于.zip格式文件的解壓縮工具 ,unzip命令可以列出、測試或從zip格式存檔中提取文件,這些文件通常位于MS-DOS系統上。
在linux服務器解壓zip類型的文件時,會提示
-bash: unzip: command not found
原因是絕大多數的Linux發行版都沒有默認安裝unzip,
執行以下命令安裝zip和unzip套件,
[root@zcwyou ~]# yum install -y unzip zip
zip命令可以用來將文件壓縮成為常用的zip格式。unzip命令則用來解壓縮zip文件。
zip和unzip命令默認會從指定的ZIP存檔中提取所有的文件到當前目錄(及其下面的子目錄)。一個配套程序zip(1L)創建ZIP存檔;這兩個程序都與PKWARE的PKZIP和PKUNZIP為MS-DOS創建的存檔文件兼容,但許多情況下,程序選項或默認行為是不同的。
3. 解壓zip文件常用參數
語法:unzip [選項] 壓縮文件名.zip
各選項的含義分別為:
-x 文件列表解壓縮文件,但不包括指定的file文件。
-v 查看壓縮文件目錄,但不解壓。
-t 測試文件有無損壞,但不解壓。
-d 目錄 把壓縮文件解到指定目錄下。
-z 只顯示壓縮文件的注解。
-n 不覆蓋已經存在的文件。
-o 強制覆蓋已存在的文件不與用戶交互確認。
-j 不重建文檔的目錄結構,把所有文件解壓到同一目錄下。
解壓zip文件常用參數
4. linux解壓zip文件8個案例
把一個文件test.txt和一個目錄dir1壓縮成為test.zip:
[root@zcwyou ~]# zip -r test.zip test.txt dir1
解壓縮wordPress/ target=_blank class=infotextkey>WordPress.zip這個文件
[root@zcwyou ~]# unzip wordpress.zip
當前目錄下有zcwyou1.zip,zcwyou2.zip和zcwyou3.zip,執行一條命令解壓這3個文件:
[root@zcwyou ~]# unzip zcwyou?.zip
注釋:?表示一個字符,如果用*表示任意多個字符。
查看某壓縮文件的內容,不解壓,只查看:
[root@zcwyou ~]# unzip -v test.zip
測試壓縮包
[root@zcwyou ~]# unzip -t test.zip
壓縮包里有多層目錄,解壓時把所有文件放在同一層目錄里,放棄原來的目錄層次
[root@zcwyou ~]# unzip -j zcwyou.zip
把當前目錄下面的abc.zip解壓到123目錄里面:
[root@zcwyou ~]# unzip abc.zip -d 123
把當前目錄里的linuxrumen.zip直接解壓到當前目錄:
[root@zcwyou ~]# unzip linuxrumen.zip
5. unzip命令總結
解壓后文件名亂碼

解壓zip后文件名亂碼
ZIP文件制作程序在制作ZIP文件時,默認使用所在操作系統的默認編碼方案來編碼待加入ZIP文件中的文件的文件名,ZIP文件中不存儲這個使用的編碼方案;而ZIP文件解壓程序在解壓ZIP文件時,默認也使用所在操作系統的默認編碼方案來解碼ZIP文件中的文件的文件名。如果解壓時所在操作系統的默認編碼方案跟制作時所在操作系統的默認編碼方案不一致,那么在解壓時解碼得到的ZIP文件內文件的文件名就會出現亂碼情形??梢酝ㄟ^“-O”選項來應對這種情況,通過該選項可以指定解壓時解碼ZIP文件內文件的文件名所應該使用的編碼方案。“-O”選項在“man unzip”中沒有介紹,在“unzip –help”中有一句話的介紹。
比如在中文windows下制作一個ZIP文件,待加入文件的文件名包含有中文字符,在中文Windows中,默認的操作系統編碼方案是CP936,因而使用CP936來編碼這些文件的文件名。現在想要將該ZIP文件在Linux下解壓,Linux下默認的操作系統編碼方案是UTF-8,因而我們需要通過“-O”選項來指定使用CP936編碼方案來解碼文件的文件名,這樣子解壓后的文件名才不會出現亂碼。
另外,RAR文件中會存儲制作RAR文件時編碼文件的文件名時所使用的編碼方案,因而在解壓的時候,可以直接讀取該值,使用該值表示的編碼方案來解碼RAR中文件的文件名。
本文已同步至博客站,尊重原創,轉載時請在正文中附帶以下鏈接:
https://www.linuxrumen.com/rmxx/1156.html