“ คำเตือน zip: ชื่อไม่ตรงกัน” ขณะทำการบีบอัดไดเรกทอรี


19

ฉันมีโฟลเดอร์ประมาณ 180 GB ฉันต้อง zip เหมือน:

zip -p password /Volumes/GGZ/faster/mybigfolder/* /Volumes/Storage\ 4/archive.zip

แต่มันบอกว่า:

    zip warning: name not matched: /Volumes/Storage 4/archive.zip

แล้วฉันจะทำสิ่งนี้ได้อย่างไร ในบันทึกอื่นarchive.zipไม่มีอยู่ แต่ฉันพยายามสร้าง


ลองzip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas

คำตอบ:


7

คำสั่งของคุณควรเป็น:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

หน้าคู่มือ ( man zip) แสดงว่าคุณควรมี:

zip <options> <archive> <inpath...>

นอกจากนี้-rขอแนะนำให้ใช้ตัวเลือกสำหรับการเรียกซ้ำผ่านเชลล์กลม "*" สำหรับสิ่งนี้


ข้อผิดพลาดที่เกี่ยวข้องอีกประการหนึ่งคือข้อผิดพลาดในการพิมพ์อย่างง่าย (เช่นหากคุณคัดลอกคำสั่งจากสคริปต์หนึ่งไปยังอีกสคริปต์หนึ่ง) ตัวอย่างเช่นแทนที่จะของคุณตั้งใจพิมพ์winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.* winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*หมายเหตุพิเศษOutput.zip... ทำได้ง่าย ๆ !
AlainD

23

ข้อผิดพลาดนี้อาจเกิดจากลิงก์สัญลักษณ์ในแผนผังไดเรกทอรีที่ถูกบีบอัด

หากสิ่งเหล่านี้ไม่มีจุดหมายที่ถูกต้อง (อาจเป็นเพราะไดเรกทอรีถูกย้ายหรือคัดลอกมาจากที่อื่น) zipจะพยายามติดตาม symlink เพื่อเก็บถาวรไฟล์เป้าหมาย

คุณสามารถหลีกเลี่ยงสิ่งนี้ (และรับผลที่คุณอาจต้องการอยู่ดีซึ่งไม่ได้เก็บถาวรหลาย ๆ ไฟล์) โดยใช้ตัวเลือก-y(หรือ--symlinks)


0

ใช้การตั้งค่าสถานะซ้ำ ( -r) แทน glob ( *) เพื่อจับคู่ไฟล์ที่จะบีบอัด นอกจากนี้ให้ระบุชื่อไฟล์เก็บถาวรก่อนจากนั้นจึงให้รายการไฟล์:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

0

ฉันเคยมีข้อผิดพลาดนี้ในอดีตด้วยเหตุผลอื่นซึ่ง-rสวิตช์ไม่สามารถแก้ไขได้ สิ่งที่เกิดขึ้นคือฉันใช้ไฟล์เพื่อเพิ่มไฟล์ zip โดยมีรหัส / ตัวแปร bash ต่อไปนี้

somevar=`ls -1 somedir`

ปัญหาก็คือlsเพียงแค่รายการไฟล์ที่ปิดราวกับว่ามันอยู่ในไดเรกทอรีปัจจุบันและนี่คือเหตุผลที่zipบ่น (เป็นหลักไฟล์ที่ไม่มีอยู่เพื่อ zip เพราะมันถูกบอกให้ดูในไดเรกทอรีที่ผิด / ปัจจุบัน)

หากนี่คือปัญหาของคุณคุณสามารถแก้ไขได้เช่น:

somevar=`ls -1d somedir/*`

อย่างที่คุณเห็นฉันใช้-dสวิตช์และ/*ท้ายชื่อไดเรกทอรีแล้วเพิ่มไฟล์สำเร็จแล้ว

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