ฉันจะสร้างไดเรกทอรีในไฟล์ zip ที่เกี่ยวข้องกับไดเรกทอรีเป้าหมายได้อย่างไรแทนที่จะเป็นไดเรกทอรีทำงานของฉัน


25

ฉันกำลังเรียกคำสั่ง zip จากสคริปต์ที่ฉันไม่สามารถเปลี่ยนไดเรกทอรี ฉันต้องการสร้างไฟล์ zip ของสิ่งต่าง ๆdata/kit123/จากไดเรกทอรีซึ่งมีข้อมูลอยู่ แต่ฉันต้องการให้เนื้อหาของ zip เป็นเพียงเนื้อหาของkit123โดยมีพา ธ ที่สัมพันธ์kit123กัน

นี่คือโครงสร้างไดเรกทอรี

myworkingdir
    data
        kit123
            kitpart1
                file.xcf
                anotherfile.xcf
            kitpart2
                ...
        kit124
            ...

สคริปต์ของฉันทำงานใน myworkingdir และไม่สามารถเปลี่ยนไดเรกทอรี

ถ้าฉันโทร

zip -r kit123.zip data/kit123

ดังนั้นโครงสร้างในไฟล์ zip จะเป็น

data
    kit123
        kitpart1
            file.xcf
            anotherfile.xcf
        kitpart2

แต่ฉันอยากให้มันเป็น

kit123
    kitpart1
        file.xcf
        anotherfile.xcf
    kitpart2

มีตัวเลือก zip ที่ฉันสามารถใช้เพื่อทำให้สิ่งนี้สำเร็จหรือไม่? ดูเหมือนแปลกที่ควรขึ้นอยู่กับไดเรกทอรีการทำงานของฉัน

ฉันรู้ว่ามันไม่ใช่ -j สิ่งนั้นทำลายโครงสร้างภายใน kit123


อืมไม่เป็นไรฉันคิดออกว่าจะเปลี่ยน dir (ใน Python) ฉันเพิ่งได้รับการอนุญาตที่ไม่ดี ฉันยังต้องการทราบว่า zip มีตัวเลือกดังกล่าวหรือไม่
นาธาน

คำตอบ:


18

ดังที่คุณทราบในความคิดเห็นที่คุณรู้วิธีการเปลี่ยนไดเรกทอรีด้วยสคริปต์ของคุณฉันจะอธิบายสถานการณ์ด้วย zip เกี่ยวกับเส้นทางที่เกี่ยวข้อง

มันอาจจะเป็นง่ายที่สุดในการเปิด terminal และcdการkit123; คุณต้องสร้างไดเร็กตอรี่เป้าหมายเป็นไดเร็กตอรี่ที่ทำงานของคุณ - คุณไม่สามารถรันคำสั่งจากฐานของโฮมไดเร็กตอรี่ของคุณหรือมันจะเลือกพา ธ ทั้งหมดของ/home/$USER/..หากคุณใช้-jตัวเลือก, มันจะตัดเส้นทางทั้งหมด, ไม่เท่ากับตัวเลือก tar --stripที่สามารถระบุระดับการลบพา ธ ที่ต่างกันได้

ดังนั้นโปรด cd ไปยังไดเรกทอรีเป้าหมายของคุณ ( kit123) และป้อน:

zip -r kit123.zip *

สิ่งนี้จะซ้ำ ( -r) สงวน*ไฟล์ทั้งหมด ( ) และไดเรกทอรีของไฟล์ในไดเรกทอรีปัจจุบัน ( kit123) และเป็นเส้นทางสัมพัทธ์ ( -p) จะถูกเก็บไว้โดยอัตโนมัติเว้นแต่-jตัวเลือกที่มีอยู่โครงสร้างไดเรกทอรีจะเป็นไปตามที่คุณต้องการ Kit123และโฟลเดอร์ย่อย ( kitpart1) พร้อมไฟล์ของตัวเองจะปรากฏ:

kit123
    kitpart1
        file.xcf
        anotherfile.xcf
    kitpart2

unzip -l zipfile.zipคุณสามารถตรวจสอบเนื้อหาของไฟล์ซิปที่มี

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกอื่น ๆ ที่มีอยู่สำหรับการzipดูman zipและmanpage อูบุนตูออนไลน์

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