new folder.zip
ฉันพยายามที่จะเพิ่มไฟล์ซิปที่มีอยู่แล้วซิปโฟลเดอร์พูด เป็นไปได้ไหมที่จะใช้งานzip -r new folder.zip
หลังจากเพิ่มไฟล์ที่คลายซิปไปแล้ว? คำสั่งนี้จะบีบอัดโฟลเดอร์หรือไม่ มีทางเลือกอื่นในการทำเช่นนี้หรือไม่?
new folder.zip
ฉันพยายามที่จะเพิ่มไฟล์ซิปที่มีอยู่แล้วซิปโฟลเดอร์พูด เป็นไปได้ไหมที่จะใช้งานzip -r new folder.zip
หลังจากเพิ่มไฟล์ที่คลายซิปไปแล้ว? คำสั่งนี้จะบีบอัดโฟลเดอร์หรือไม่ มีทางเลือกอื่นในการทำเช่นนี้หรือไม่?
คำตอบ:
ใช้การตั้งค่าสถานะการปรับปรุง: -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 -r zipfile.zip newfile.txt newfile1.txt
-r
ตัวเลือกในการสั่งซิปช่วยให้คุณสามารถเพิ่มไฟล์
-r
เป็นตัวเลือกซ้ำ
-r
สามารถใช้งานได้หากเพิ่มไดเรกทอรีหรือเมื่อไม่เพิ่มไดเรกทอรีทุกครั้งที่คุณไม่ต้องการเพียงเพิ่มไดเรกทอรีและไม่มีเนื้อหา ในตัวอย่างสั้น ๆ นั้นถูกต้อง แต่คำอธิบายนั้นผิด) (ดีที่สุดที่จะทดสอบนี่เป็นเพียงการตีความคู่มือของฉัน)
แฟล็ก -u สามารถใช้งานไฟล์ได้
zip -ur zip_to_upload.zip file_to_add.txt
ความนับถือ
ฉันใช้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
หากคุณมีไฟล์จำนวนมากในที่เดียวกับที่เก็บไฟล์ zip และคุณต้องการคัดลอกไฟล์ทั้งหมดไปยังไฟล์เก็บถาวรคุณสามารถทำได้:
zip -ur zipfile.zip !(zipfile.zip)
สิ่งนี้จะอัปเดตไฟล์ซิปของคุณ ( -u
ตัวเลือก) ซ้ำ ( -r
ตัวเลือก) พร้อมกับไฟล์ทั้งหมดที่พบยกเว้นไฟล์ซิปตัวเอง ( !
คือการปฏิเสธของไฟล์ zip )
จากนั้นคุณสามารถลบไฟล์ทั้งหมดยกเว้นไฟล์ zip โดยปฏิบัติตามกฎเดียวกันข้างต้น:
rm !(zipfile.zip)