การเพิ่มไฟล์ที่คลายซิปลงในโฟลเดอร์ซิป


32

new folder.zipฉันพยายามที่จะเพิ่มไฟล์ซิปที่มีอยู่แล้วซิปโฟลเดอร์พูด เป็นไปได้ไหมที่จะใช้งานzip -r new folder.zipหลังจากเพิ่มไฟล์ที่คลายซิปไปแล้ว? คำสั่งนี้จะบีบอัดโฟลเดอร์หรือไม่ มีทางเลือกอื่นในการทำเช่นนี้หรือไม่?


คุณสามารถไพพ์ได้เปิดเครื่องรูดไฟล์ต้นฉบับ | จากนั้นซิปเนื้อหาทั้งหมดเป็นวิธีสร้างไฟล์ใหม่ ฉันไม่แน่ใจว่าคุณจะทำอย่างไรกับคำสั่งเดียว
unixmiah

คำตอบ:


44

ใช้การตั้งค่าสถานะการปรับปรุง: -u

ตัวอย่าง:

zip -ur existing.zip myFolder

คำสั่งนี้จะบีบอัดและเพิ่มmyFolder(และเนื้อหาของมัน) existing.zipเพื่อ


การใช้งานขั้นสูง:

การตั้งค่าสถานะการปรับปรุงจริง ๆ แล้วเปรียบเทียบไฟล์ที่เข้ามากับไฟล์ที่มีอยู่และจะเพิ่มไฟล์ใหม่หรืออัพเดตไฟล์ที่มี

ดังนั้นหากคุณต้องการเพิ่ม / อัปเดตไดเรกทอรีย่อยเฉพาะภายในไฟล์ zip เพียงอัปเดตแหล่งที่มาตามที่ต้องการจากนั้นซิปทั้งแหล่งที่มาด้วย-uแฟล็กอีกครั้ง เฉพาะไฟล์ที่เปลี่ยนแปลงเท่านั้นที่จะถูกซิป

หากคุณไม่มีสิทธิ์เข้าถึงไฟล์ต้นฉบับคุณสามารถคลายซิปไฟล์ zip จากนั้นอัปเดตไฟล์ที่ต้องการแล้วทำการ zip อีกครั้งด้วยการ-uตั้งค่าสถานะ อีกครั้งเฉพาะไฟล์ที่เปลี่ยนแปลงเท่านั้นที่จะถูกซิป

ตัวอย่าง:

โครงสร้างต้นฉบับ


ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│   ├── file3.txt
│   ├── Logs
│   │   ├── logs1.txt
│   │   ├── logs2.txt
│   │   ├── logs3.txt

อัปเดตโครงสร้างแหล่งที่มา


ParentDir
├── file1.txt
├── file2.txt
├── ChildDir
│   ├── file3.txt
│   ├── Logs
│   │   ├── logs1.txt
│   │   ├── logs2.txt
│   │   ├── logs3.txt 
│   │   ├── logs4.txt <-- NEW FILE 

การใช้

$ zip -ur existing.zip ParentDir 
> updating: ParentDir/ChildDir/Logs (stored 0%)
>   adding: ParentDir/ChildDir/Logs/logs4.txt (stored 96%)

ขอบคุณ! ฉันจะระบุโฟลเดอร์ในไฟล์ zip เพื่อเพิ่มเข้าไปได้อย่างไร?
Aaron Esau

ฉันได้เพิ่มหัวข้อเพื่อตอบคำถามของคุณ :)
Ethan Strider

0

ฉันเชื่อว่าคุณสามารถเพิ่มไฟล์โดยใช้คำสั่งนี้:

zip -r zipfile.zip newfile.txt newfile1.txt

-rตัวเลือกในการสั่งซิปช่วยให้คุณสามารถเพิ่มไฟล์


-rเป็นตัวเลือกซ้ำ
ctrl-alt-delor

@ Richard ฉันจะแก้ไขให้ดี ลองดูสักสองสาม
ryekayo

@ Richard, กลายเป็นแหล่งที่มาที่ฉันได้รับจากบอกว่าคุณสามารถใช้คำสั่ง -r เพื่อแก้ไขไฟล์ซิปที่มีอยู่: linuxnix.com/2014/05/…
ryekayo

2
เพิ่ม - อัปเดตรายการที่มีอยู่และเพิ่มไฟล์ใหม่ หากไม่มีไฟล์เก็บถาวรให้สร้างขึ้น นี่คือโหมดเริ่มต้น (ไม่จำเป็นต้องมีตัวเลือกในการแทนที่หรือเพิ่มไฟล์-rสามารถใช้งานได้หากเพิ่มไดเรกทอรีหรือเมื่อไม่เพิ่มไดเรกทอรีทุกครั้งที่คุณไม่ต้องการเพียงเพิ่มไดเรกทอรีและไม่มีเนื้อหา ในตัวอย่างสั้น ๆ นั้นถูกต้อง แต่คำอธิบายนั้นผิด) (ดีที่สุดที่จะทดสอบนี่เป็นเพียงการตีความคู่มือของฉัน)
ctrl-alt-delor

2
เพื่อความปลอดภัยคุณแน่ใจหรือไม่ว่าคุณต้องการแก้ไขไฟล์เก็บถาวรที่มีอยู่ แต่อย่างน้อยฉันก็ควรจะทำสำเนาความปลอดภัยทำการเพิ่มแล้วตรวจสอบความสมบูรณ์ของไฟล์เก็บถาวรก่อนที่จะทำสิ่งใหม่
mdpc


0

ฉันใช้zipคำสั่งสำเร็จ ด้วยตัวเลือกเติบโต (-g) เพื่อเพิ่มโฟลเดอร์ย่อยfolder1/folder2ที่มีไฟล์fileA.txtและfileB.txt:

zip -gr folder.zip folder1/folder2

-rหมายถึงการชดเชย dir

จากความเข้าใจของฉัน -g ควรขยายไฟล์ zip ไม่ใช่การสร้างไฟล์ zip ใหม่ (ซึ่งอาจเป็นประโยชน์กับไฟล์เก็บถาวร zip ขนาดใหญ่มาก) ในกรณีที่มีปัญหาคุณสามารถลองสร้างโฟลเดอร์ย่อยใน folder.zip ด้วย (เช่น) ก่อน:

zip -g folder.zip folder1
zip -g folder.zip folder2

0

หากคุณมีไฟล์จำนวนมากในที่เดียวกับที่เก็บไฟล์ zip และคุณต้องการคัดลอกไฟล์ทั้งหมดไปยังไฟล์เก็บถาวรคุณสามารถทำได้:

zip -ur zipfile.zip !(zipfile.zip)

สิ่งนี้จะอัปเดตไฟล์ซิปของคุณ ( -uตัวเลือก) ซ้ำ ( -rตัวเลือก) พร้อมกับไฟล์ทั้งหมดที่พบยกเว้นไฟล์ซิปตัวเอง ( !คือการปฏิเสธของไฟล์ zip )

จากนั้นคุณสามารถลบไฟล์ทั้งหมดยกเว้นไฟล์ zip โดยปฏิบัติตามกฎเดียวกันข้างต้น:

rm !(zipfile.zip)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.