這篇文章主要講解了“Linux基礎(chǔ)命令unzip的用法”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Linux基礎(chǔ)命令unzip的用法”吧!
10年積累的網(wǎng)站制作、網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有延津免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。unzip
解壓zip指令壓縮過的文件。unzip將列出、測試或從ZIP存檔中提取文件,這些文件通常在MS-DOS系統(tǒng)中找到。默認行為(沒有選項)是將指定ZIP存檔中的所有文件提取到當(dāng)前目錄(及其下面的子目錄)中。一個配套程序zip(1L)創(chuàng)建ZIP檔案;這兩個程序都與PKWare的PKZIP和PKUNZIP為MS-DOS創(chuàng)建的檔案兼容,但在許多情況下,程序選項或默認行為有所不同。
此命令的適用范圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、語法
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] [-x xfile(s) ...] [-d exdir]
2、選項參數(shù)列表
參數(shù) | 說明 |
file[.zip] | ZIP存檔的路徑。如果文件規(guī)范是通配符,則按操作系統(tǒng)(或文件系統(tǒng))確定的順序處理每個匹配的文件。只有文件名可以是通配符;路徑本身不能。通配符表達式類似于常用Unix shell(sh、ksh、csh)中支持的表達式,可能包含: *,匹配0或多個字符的序列。 ?,匹配一個字符。 […],匹配括號內(nèi)的任何單個字符;范圍由開始字符、連字符和結(jié)束字符指定。如果是感嘆號或插入符號(‘!‘或者‘^’)在左括號后面,則括號中的字符范圍被補充(也就是說,除了括號中的字符外,任何字符都被認為是匹配的)。若要指定逐字左括號,必須使用三個字符序列‘‘[[]’’。 (確保引用任何可能被操作系統(tǒng)解釋或修改的字符,特別是在Unix和VMS下。)如果沒有找到匹配項,則假定規(guī)范為文字文件名;如果也失敗,則追加后綴.zip。請注意,與任何其他ZIP存檔一樣,支持自解壓ZIP文件;只需顯式地指定.exe后綴(如果有的話)。 |
[file(s)] | 要處理的歸檔成員的可選列表,用空格分隔。(用VMSCLI定義的VMS版本必須用逗號分隔文件。見下文備選案文中的-v)。正則表達式(通配符)可用于匹配多個成員;參見上文。同樣,請務(wù)必引用否則將由操作系統(tǒng)展開或修改的表達式 |
[-x xfile(s)] | 要排除在處理之外的歸檔成員的可選列表。由于通配符通常匹配(‘/’)目錄分隔符(異常請參見選項-W),此選項可用于排除子目錄中的任何文件。例如,“unzip foo *.[Ch] -x */*”將提取主目錄中的所有C源文件,但在任何子目錄中都不提取。如果沒有-x選項,則將提取zip文件中所有目錄中的所有C源文件。 |
[-d exdir] | 提取文件的可選目錄。默認情況下,所有文件和子目錄都在當(dāng)前目錄中重新創(chuàng)建;-d選項允許在任意目錄中提取(總是假定一個目錄具有寫入該目錄的權(quán)限)。這個選項不需要出現(xiàn)在命令行的末尾;它也可以在zipfile規(guī)范之前(帶常規(guī)選項)、在zip文件規(guī)范之后,或者在文件和-x選項之間被接受。選項和目錄可以連接在一起,沒有任何空白,但請注意,這可能會導(dǎo)致正常的shell行為被抑制。特別是,‘-d~’被Unix C shell擴展為用戶主目錄的名稱,但是‘-d~’被視為當(dāng)前目錄的一個文字子目錄‘~’。 |
請注意,為了支持過時的硬件,Unzip的使用屏幕僅限于22或23行,因此只應(yīng)被視為基本解壓縮語法的提醒,而不是所有可能的標志的詳盡列表。詳盡的清單如下:
選項 | 說明 |
--help | 幫助信息 |
--version | 顯示命令版本信息 |
-c | 將解壓結(jié)果送到標準輸出 |
-f | 解壓時更新現(xiàn)有的文件,即僅解壓磁盤上已經(jīng)存在且比磁盤副本更新的文件。默認情況下,在覆蓋之前解壓縮查詢,但是-o選項可以用于抑制查詢 |
-l | 顯示壓縮包內(nèi)文件的詳細信息。將打印指定文件的名稱、未壓縮文件大小、修改日期和時間,以及所有指定文件的總計。 |
-p | 將解壓結(jié)果送到標準輸出,不對字符轉(zhuǎn)換。只有文件數(shù)據(jù)被發(fā)送到stdout,文件總是以二進制格式提取 |
-t | 檢查壓縮文件的正確性。該選項提取內(nèi)存中的每個指定文件,并將擴展文件的CRC(循環(huán)冗余校驗,增強校驗和)與原始文件的存儲CRC值進行比較。 |
-T | 將存檔上的時間戳設(shè)置為每個歸檔中最新文件的時間戳。這對應(yīng)于zip的-go選項,但它可以用于通配符zip文件(例如,“unzip –T \*.zip”),而且速度要快得多 |
-u | 更新現(xiàn)有文件,并在需要時創(chuàng)建新文件。該選項執(zhí)行與-f選項相同的功能 |
-v | 列出存檔文件(詳細格式)或顯示診斷版本信息。 |
-z | 僅顯示壓縮文件的備注信息 |
修飾符 | 說明 |
--help | 幫助信息 |
--version | 顯示命令版本信息 |
-a | 解壓時,對文本文件做字符轉(zhuǎn)換 |
-b | 不對文本文件字符轉(zhuǎn)換,把所有文件當(dāng)做二進制文件。 |
-B | 保存每個覆蓋文件的備份副本,‘foo’的舊拷貝改名為‘foo~’。 |
-C | 解壓時,設(shè)置文件名大小寫敏感 |
-D | 跳過提取項的時間戳恢復(fù)。 |
-E | [僅限MacOS]在恢復(fù)操作期間顯示MacOS額外字段的內(nèi)容。 |
-F | [僅限Acorn]禁止從存儲的文件名中刪除NFS文件類型擴展。 |
-i | [僅限MacOS]忽略存儲在MacOS額外字段中的文件名。相反,使用存儲在條目標題的泛型部分中的最兼容的文件名。 |
-j | 垃圾路。存檔的目錄結(jié)構(gòu)不被重新創(chuàng)建;所有文件都存放在提取目錄中(默認情況下是當(dāng)前的)。 |
-J | [僅限BeOS]垃圾文件屬性。文件的BeOS文件屬性沒有恢復(fù),只是文件的數(shù)據(jù)。 |
-K | 保留SUID/SGID/duy文件屬性。如果沒有此標志,則出于安全原因,將清除這些屬性位。 |
-L | 解壓時,將文件名改為小寫字母 |
-M | 把解壓結(jié)果送給more分屏顯示 |
-n | 解壓時,不覆蓋原有的文件 |
-N | 將文件注釋解壓縮為Amiga文件。 |
-o | 不提示用戶,覆蓋原有文件 |
-P | 解壓時,輸入密碼 |
-q | 靜默模式 |
-s | [OS/2, NT, MS-DOS]將文件名中的空格轉(zhuǎn)換為下劃線 |
-S | [VMS]將文本文件(-a,-aa)轉(zhuǎn)換為Stream_LF記錄格式,而不是文本文件默認的可變長度記錄格式。 |
-U | [UNICODE_SUPPORT only]修改或禁用UTF-8處理。當(dāng)Unicode_Support可用時,選項-U強制解壓將UTF-8編碼文件名中的所有非ASCII字符轉(zhuǎn)義為“#Uxxxx” |
-V | 保留(VMS)文件版本號。VMS文件可以用版本號存儲,格式為file.ext;#。默認情況下,‘;#’版本號將被刪除,但此選項允許保留它們。 |
-W | [僅當(dāng)WILD_STOP_AT_DIRR編譯時選項啟用] 修改模式匹配例程,以便 “?”和“*”與目錄分隔符“/”不匹配。 |
-X | [VMS, Unix, OS/2, NT, Tandem] 在Unix下恢復(fù)用戶和組信息(UID/GID) |
-Y | [VMS] 將存檔的文件名結(jié)尾“.nn”(其中‘nnn’是一個十進制數(shù))視為VMS版本號(‘;nnn’)。(默認的做法是將它們視為文件類型。) |
-$ | [MS-DOS, OS/2, NT]如果提取介質(zhì)是可移動的(例如磁盤),則恢復(fù)卷標簽。加倍的選項($-$)允許固定媒體(硬盤)也被標記。默認情況下,卷標簽將被忽略。 |
-/ extensions | [Acorn] 重寫Unzip$Ext環(huán)境變量提供的擴展列表。在提取過程中,與此擴展列表中的項匹配的文件名擴展名將在提取文件的基名前面交換。 |
-: | 允許將存檔成員解壓縮到當(dāng)前“提取根文件夾”之外的位置。 |
-^ | [Unix only] 允許提取的ZIP存檔條目的名稱中包含控制字符。 |
-2 | [vms]強制無條件地將文件名轉(zhuǎn)換為ODS 2-兼容名稱 |
3、環(huán)境選項
unzip的默認行為可以通過放置在環(huán)境變量中的選項來修改。這可以用任何選項來完成,但是它可能對-a,-L,-C,-q,-o或-n修飾符最有用:默認情況下使unzip自動轉(zhuǎn)換文本文件,使文件名從大寫系統(tǒng)轉(zhuǎn)換為小寫,使其不敏感地匹配名稱,使其更安靜,或者讓它在解壓文件時始終覆蓋或不覆蓋它們。例如,要使解壓縮盡可能安靜,只報告錯誤,可以使用以下命令之一:
|
實際上,環(huán)境選項被認為與任何其他命令行選項一樣,只是它們實際上是命令行中的第一個選項。要覆蓋環(huán)境選項,可以使用“減號運算符”來刪除它。例如,若要覆蓋上面示例中的一個靜音標志,請使用以下命令
|
第一個連字符是正常的開關(guān)字符,第二個是負號,作用于Q選項。因此,這里的效果是取消一個安靜的量子。若要取消這兩個安靜的標志,可以使用兩個(或更多)最小值:
|
正如上面的例子所建議的,默認變量名是UNZIP_OPTS,用于VMS,以及所有其他操作系統(tǒng)的解壓縮。為了與zip(1L)兼容,UNZIP_OPTS也被接受(不要問)。但是,如果同時定義了UNZIP和UNZIP_OPTS,那么UNZIP優(yōu)先。Unzip的診斷選項(沒有zip文件名的-v)可以用于檢查所有四個可能的解壓縮和zipinfo環(huán)境變量的值
4、說明
unzip的某些編譯版本可能不支持解密。若要檢查加密支持版本,可以嘗試測試或提取加密存檔,或者檢查unzip的診斷屏幕(請參閱上面的-v選項)以“[解密]”作為特殊的編譯選項之一。
如上所述,可以使用-P選項在命令行上提供密碼,但代價是安全性。選的解密方法是正常提?。蝗绻鹺ip文件成員被加密,解壓縮將提示輸入密碼,而不回顯所鍵入的內(nèi)容。解壓縮繼續(xù)使用相同的密碼,只要它看起來是有效的,通過在每個文件上測試一個12字節(jié)的頭。正確的密碼將始終簽出與標題,但有1/256的機會,一個不正確的密碼也會。(這是PKWare zipfile格式的一個安全特性;它有助于防止暴力攻擊,否則只通過測試報頭就可以獲得很大的速度優(yōu)勢。)如果給出了錯誤的密碼,但它還是通過了頭測試,則將為提取的數(shù)據(jù)生成不正確的CRC,或者在提取過程中解壓縮失敗,因為‘解密’字節(jié)并不構(gòu)成有效的壓縮數(shù)據(jù)流。
如果第一個密碼沒有通過頭檢查某個文件,解壓縮將提示輸入另一個密碼,以此類推,直到提取所有文件。如果不知道密碼,則輸入空密碼(即只返回一個回車或‘Enter’)作為跳過所有進一步提示的信號。隨后將只提取存檔中未加密的文件。(事實上,這并不完全正確;早期版本的zip(1L)和zipcloak(1L)允許空密碼,因此解壓縮檢查每個加密文件以查看空密碼是否有效。這可能會導(dǎo)致“假陽性”和提取錯誤,如上所述。)
用8位密碼加密的檔案(例如,帶有重音的歐洲字符的密碼)可能無法跨系統(tǒng)和/或其他存檔器移植。這個問題源于對這些字符使用多種編碼方法,包括拉丁文1(ISO 8859-1)和OEM代碼頁850。DoS PKZIP 2.04g使用OEM代碼頁;Windows PKZIP 2.50使用拉丁文-1(因此與DOS PKZIP不兼容);Info-ZIP使用DOS、OS/2和Win3.x端口上的OEM代碼頁,但使用ISO編碼(拉丁文-1等)。在其他地方,NicoMak的WinZip6.x根本不允許8位密碼。解壓縮5.3(或更新)嘗試首先使用默認字符集(例如拉丁語-1),然后使用備用字符集(例如OEM代碼頁)測試密碼。
5、例子代碼
|
6、診斷信息
退出碼 | 說明 |
正常,沒有錯誤信息 | |
1 | 遇到一個或多個警告錯誤,但仍然成功地完成了處理。這包括由于不支持的壓縮方法或密碼未知的加密而跳過一個或多個文件的zip文件。 |
2 | 檢測到zip文件格式中的通用錯誤。無論如何,處理可能已經(jīng)成功完成;一些由其他歸檔程序創(chuàng)建的損壞的zip文件具有簡單的工作環(huán)境。 |
3 | 檢測到zip文件格式出現(xiàn)嚴重錯誤。處理可能立即失敗 |
4 | 在程序初始化期間,unzip無法為一個或多個緩沖區(qū)分配內(nèi)存。 |
5 | unzip無法分配內(nèi)存,也無法獲取TTY來讀取解密密碼。 |
6 | unzip過程中無法將內(nèi)存分配給磁盤。 |
7 | unzip無法在內(nèi)存解壓縮期間分配內(nèi)存. |
8 | 當(dāng)前還沒有用到這個退出碼 |
9 | 指定的壓縮文件沒有找到 |
10 | 非法的選項 |
11 | 找不到匹配的文件 |
50 | 磁盤已經(jīng)滿了 |
51 | ZIP存檔的結(jié)尾是過早地遇到的。 |
80 | 用戶使用ctrl+c終止了解壓過程 |
81 | 由于不支持的壓縮方法或不支持的解密,一個或多個文件的測試或提取失敗 |
82 | 由于解密密碼錯誤,沒有找到任何文件。(但是,即使成功處理了一個文件,退出狀態(tài)也是1。) |
7、實例
1)顯示備注信息
|
2)顯示壓縮包內(nèi)的文件信息
|
3)解壓
|
感謝各位的閱讀,以上就是“Linux基礎(chǔ)命令unzip的用法”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Linux基礎(chǔ)命令unzip的用法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
本文題目:Linux基礎(chǔ)命令unzip的用法-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://muchs.cn/article12/dgdhgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、企業(yè)網(wǎng)站制作、品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)、App設(shè)計、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容