วิธีการยกเว้นไฟล์จาก Zip Archive

วิธีที่ง่ายที่สุดในการยกเว้นไฟล์เฉพาะจำนวนมากหรือกลุ่มของไฟล์ที่ตรงกันจากที่เก็บ zip คือการข้ามยูทิลิตีซิปที่มีอยู่ใน UI ที่เป็นมิตรของ Mac OS X และพลิกโฉมไปยังบรรทัดคำสั่งซึ่งคำสั่ง zip ที่มีประสิทธิภาพอยู่

นี่เป็นประโยชน์สำหรับล้านและหนึ่งเหตุผล แต่แรงจูงใจหลักสำหรับบทความนี้เกี่ยวข้องกับ. DS_Store ไฟล์ที่ได้รับพร้อมกับเก็บ zip สร้างขึ้นใน Mac เพียงเพื่อถ่วงเครื่องอื่นที่ unzips ไฟล์ไม่ว่าจะเป็นในอีก Mac, Windows PC หรือ Linux ที่เกิดขึ้นกับทั้งเครื่องมือซิปที่เป็นมิตรและยูทิลิตี้ซิปบรรทัดคำสั่งโดยค่าเริ่มต้นและเป็นเพราะพฤติกรรมเริ่มต้นของเครื่องมือ zipping คือการรวมไฟล์ที่ซ่อนไว้ไม่ว่าจะมีการแสดงหรือไม่ก็ตาม ไม่จำเป็นต้องเป็นเรื่องไม่ดีและในหลาย ๆ กรณีจะถือว่าเป็นประโยชน์ แต่ถ้าคุณไม่ต้องการให้พวกเขาหรือไฟล์อื่น ๆ สำหรับเรื่องนั้นแสดงในคลังของคุณแล้วอ่านต่อ

ไม่รวมไฟล์จาก Zip Archive

ข้อมูลพื้นฐานเกี่ยวกับการยกเว้นไฟล์เมื่อสร้างที่เก็บ zip จะอยู่กึ่งกลางรอบธง -x ซึ่งใช้เพื่อยกเว้นไฟล์จากที่จัดเก็บที่ตรงกับชื่อหรือรูปแบบเฉพาะ ในขั้นพื้นฐานที่สุดจะมีลักษณะดังนี้

zip archive.zip files -x "ExcludeMe"

ความหมายที่คุณสามารถยกเว้นไฟล์เดียวได้กล่าวว่าชื่อว่า "Nothanks.jpg"

zip archive.zip images/ -x "Nothanks.jpg"

ลองดูตัวอย่างเฉพาะบางอย่างที่เป็นประโยชน์

ไม่รวม. DS_ เก็บไฟล์จากที่เก็บ Zip

การทำเช่นนี้จะป้องกันข้อมูลเมตา Mac ที่มองไม่เห็นโดยทั่วไปไฟล์ DS_Store จากการรวมอยู่ในที่เก็บ zip ซึ่งรวมอยู่ในค่าเริ่มต้น:

zip -r archivename.zip archivedirectory -x "*.DS_Store"

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

zip -r archive.zip directory -x "*/\.DS_Store"

หมายเหตุ: เปลือกไม่จำเป็นต้องมีใบเสนอราคาสำหรับคำสั่งนี้ให้ทำงานได้อย่างถูกต้อง แต่ในเปลือก bash (ค่าดีฟอลต์สำหรับ OS X) คุณจะต้องใช้คำพูดสำหรับการยกเว้นด้วยสัญลักษณ์ตัวแทนและรูปแบบ

ยกเว้นชนิดแฟ้มที่ระบุจากที่เก็บ Zip

ด้วยสัญลักษณ์ตัวแทนคุณสามารถยกเว้นไฟล์บางประเภทด้วยการเน้นส่วนขยาย ตัวอย่างเช่นคำสั่งนี้จะบีบไดเรกทอรีทั้งหมดลบไฟล์. jpg:

zip -r archive.zip directory -x "*.jpg"

ที่สามารถแก้ไขได้สำหรับส่วนขยายหรือรูปแบบเฉพาะที่ระบุในชื่อไฟล์

ไม่รวมไดเรกทอรี. git หรือ. svn จากที่เก็บถาวร Zip

Zip ไดเรกทอรีลบ. git และเป็นเนื้อหา:
zip -r zipdir.zip directorytozip -x "*.git*"

Zip โฟลเดอร์โดยไม่รวมไดเรกทอรี. svn:
zip -r zipped.zip directory -x "*.svn*"

ยกเว้นไฟล์ที่ซ่อนทั้งหมดจาก Zip Archive

เนื่องจากรูปแบบและสัญลักษณ์ตัวแทนสามารถใช้งานได้คุณสามารถยกเว้นไฟล์และโฟลเดอร์ที่มองไม่เห็นได้ทั้งหมดด้วยเช่นกันโดยการระบุช่วงเวลาไม่ว่าจะเป็นไดเร็กทอรีเช่น. svn หรือไฟล์แต่ละไฟล์เช่น. bash_profile หรือ. htaccess

zip -r archivename.zip directorytozip -x "*.*"

หรือเพื่อแยกไฟล์ที่มองไม่เห็นออกจากไดเร็กทอรีย่อยทั้งหมด:

zip -r archive.zip directory -x "*/\.*"

ไชโยให้ commenter ใน Macworld Forums สำหรับไวยากรณ์ที่ถูกต้องในการยกเว้นไฟล์เหล่านั้นจากไดเรกทอรีย่อยด้วย

ท้ายที่สุดนี่เป็นเพียงเหตุผลที่ผู้ใช้ไฟฟ้าสามารถข้ามไปที่ Terminal เพื่อสร้างที่เก็บถาวรได้ ด้วยคุณลักษณะที่ทรงพลังเช่นการสนับสนุนสัญลักษณ์ตัวแทนการยกเว้นและการป้องกันด้วยรหัสผ่านสำหรับซิปเป็นเพียงคุณลักษณะที่เต็มรูปแบบมากขึ้นและเนื่องจากทั้งหมดนี้รวมอยู่ใน Mac คุณจึงไม่จำเป็นต้องดาวน์โหลดแอปอื่นเพื่อสนับสนุนคุณลักษณะขั้นสูง

และใช่ในทางเทคนิคหากคุณมุ่งมั่นที่จะอยู่ใน UI คุณสามารถใช้ตัวค้นหา Finder และ Spotlight เพื่อ จำกัด เนื้อหาของโฟลเดอร์ในระบบปฏิบัติการ OS X ก่อนที่จะสร้างที่เก็บถาวรหรือเพียงเลือกทั้งหมดและด้วยตนเอง Command + คลิกที่ไฟล์แต่ละไฟล์เพื่อไม่รวม, แต่จริงๆแล้วไม่มีประสิทธิภาพสำหรับการเก็บข้อมูลขนาดใหญ่ ดังนั้น terminal จะชนะเพื่อความสะดวกและแม้จะเป็นศูนย์กลางรอบบรรทัดคำสั่งก็ไม่ซับซ้อนจริงๆเมื่อคุณเรียนรู้พื้นฐาน