คำสั่ง Linux unzip: ตัวเลือกเพื่อบังคับให้เขียนทับหรือไม่


173

ฉันกำลังเขียนเชลล์สคริปต์ที่คลายซิปไฟล์ ZIP ลงในลำดับชั้นของไฟล์ที่มีอยู่ซึ่งอาจเขียนทับไฟล์บางไฟล์

ปัญหาคือคำสั่ง unzip ขอให้ยืนยัน:
replace jsp/extension/add-aspect.jsp? [y]es, [n]o, [A]ll, [N]one, [r]ename: y

มีตัวเลือกในการบังคับให้เปิดเครื่องรูดเพื่อเขียนทับไฟล์หรือไม่?

คำตอบ:


266

ตามhttp://www.manpagez.com/man/1/unzip/คุณสามารถใช้-oตัวเลือกเพื่อเขียนทับไฟล์:

unzip -o /path/to/archive.zip

โปรดทราบว่า-oเช่นเดียวกับunzipตัวเลือกส่วนใหญ่ต้องไปข้างหน้าชื่อไฟล์เก็บถาวร


1
เช่น: unzip -o ZIP_PATHทำงานเป็นตัวดัดแปลง
bonzofenix

10
-oควรใช้ตัวเลือกก่อนอาร์กิวเมนต์อื่น ๆ ตัวอย่าง:unzip -o /path/to/archive.zip -d /destination_dir
FelikZ

1
@FelikZ ขอบคุณสำหรับรายละเอียดฉันเพิ่มตัวอย่าง (ถอดส่วน) ของคุณลงในคำตอบ
foraidt

สิ่งนี้ไม่สามารถใช้ได้กับเว็บไซต์ Azure (Windows)
loretoparisi

@loretoparisi คุณกำลังพูดถึงอะไร? นี่เป็นคำถาม Linux คุณกำลังมองหาบางสิ่งบางอย่างเช่นExpand-Archive ?
Franklin Yu

31

หากคุณต้องการเปิดเครื่องรูดเพื่อแทนที่ไฟล์ใหม่เท่านั้นคุณสามารถใช้

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    

ใช้สิ่งที่คุณรู้สึกว่าเหมาะสมกับความต้องการของคุณมากขึ้น


6
+1, ฉันชอบรุ่นที่ละเอียดกว่าและเป็นมิตรกว่าของ "นี่คือวิธีการ rtfm สำหรับบริบท แต่นี่เป็นส่วนที่เกี่ยวข้องของวิธีการ m"
Nathan Basanese

1
ดูความช่วยเหลือด้วย แต่ก็ไม่เข้าใจความแตกต่าง ระหว่าง-u update files, create if necessaryและ-f freshen existing files, create none🤷‍♂️?
juanmirocks

//, ความแตกต่างอยู่ในลักษณะการทำงานหากไฟล์ไม่มีอยู่
Nathan Basanese

@juanmirocks ด้วย -f ไฟล์ที่ใหม่กว่าจะไม่ถูกแตกไฟล์แม้ว่าจะไม่ได้อยู่ที่ปลายทาง (เช่นหากมีการสร้าง zip รุ่นที่ใหม่กว่าซึ่งมีไฟล์ที่ unzip ก่อนหน้านี้ไม่ได้สร้าง) หากคุณยังไม่ทราบว่าคุณต้องการสิ่งนั้นโอกาสที่คุณจะไม่ทำ ในทางตรงกันข้าม -u จะแตกไฟล์เพิ่มเติมที่ไม่ได้อยู่ในปลายทางทำให้มั่นใจได้ว่าไม่มีสิ่งใดขาดหายไปจากปลายทางที่อยู่ใน zip
poikilos
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.