題 Linux unzip命令:強制覆蓋的選項?


我正在編寫一個shell腳本,將ZIP文件解壓縮到現有的文件層次結構中,可能會覆蓋一些文件。

問題是unzip命令要求確認:
replace jsp/extension/add-aspect.jsp? [y]es, [n]o, [A]ll, [N]one, [r]ename: y

是否有強制解壓縮覆蓋文件的選項?


141
2018-01-26 08:48


起源




答案:


根據 http://www.manpagez.com/man/1/unzip/ 你可以使用 -o 覆蓋文件的選項:

unzip -o /path/to/archive.zip

注意 -o和大多數人一樣 unzip的選擇,必須去 之前 存檔名稱。


218
2018-01-26 09:04



例如: unzip -o ZIP_PATH,作為修飾語。 - bonzofenix
-o 選項應該在任何其他參數之前使用。例: unzip -o /path/to/archive.zip -d /destination_dir - FelikZ
@FelikZ感謝您的詳細信息,我在答案中添加了您的(精簡版)示例 - foraidt
這不適用於Azure網站(Windows)。 - loretoparisi
@loretoparisi你在說什麼?這是一個Linux問題。你在找類似的東西嗎? 展開 - 歸檔? - Franklin Yu


如果您需要解壓縮才能更換新文件,則可以使用

unzip -f archieve.zip

但是對於將來的參考,你可以輸入

unzip 

並且您將獲得此包的參數列表。 對於這種情況,可能的論據是:

-f  freshen existing files, create none
-n  never overwrite existing files         
-q  quiet mode (-qq => quieter)
-o  overwrite files WITHOUT prompting    

使用您認為更適合您的那個。


24
2017-08-26 23:02



+1,我喜歡更精細,更友好的版本“這裡是如何rtfm的上下文,但這裡是m”方法的相關部分。 - Nathan Basanese
還看了一下幫助,但沒看懂差異。之間 -u update files, create if necessary 和 -f freshen existing files, create none ️? - juanmirocks
//,如果文件不存在,則區別在於行為 - Nathan Basanese