บีบอัดโดยไม่มี. DS_Store และ __MACOSX


25

เมื่อฉันบีบอัดโฟลเดอร์หรือไฟล์โดยคลิกขวาที่เมนูของ Mac OS X ไฟล์ที่เก็บถาวรประกอบด้วย. DS_Storeและโฟลเดอร์__MACOSX เนื่องจากฉันแชร์ไฟล์ที่เก็บถาวรแบบออนไลน์เพื่อดาวน์โหลดผู้ใช้ Windows พยายามค้นหาไฟล์ในโฟลเดอร์__MACOSXโดยไม่ตั้งใจ

ฉันต้องมีตัวเลือกเก็บถาวรที่สะอาดกว่า ฉันไม่ต้องการรวมโฟลเดอร์. DS_Storeและ__MACOSXแต่มีเพียงไฟล์หรือโฟลเดอร์ในไฟล์เก็บถาวร

ทั้งหมดที่ฉันพบคือCleanArchiverแต่เป็นแอปพลิเคชัน GUI มันต้องใช้เวลาและฉันมีไฟล์มากมายที่จะบีบอัด ฉันกำลังมองหาวิธีแก้ไขตามเมนูบริบทหากเป็นไปได้

มีวิธีใดบ้างที่คุณสามารถแนะนำสำหรับการบีบอัดแบบสะอาด?

คำตอบ:


33

คุณสามารถใช้คำสั่ง zip ใน Terminal เพื่อทำการซิปไฟล์โดยไม่ต้องใช้ไฟล์. DS_Store , __MACOSXและอื่น ๆ *

เปิด Terminal (ค้นหาเทอร์มินัลในสปอตไลท์)
นำทางไปยังโฟลเดอร์ที่คุณต้องการซิปโดยใช้คำสั่ง cd
วางสิ่งนี้zip -r dir.zip . -x ".*" -x "__MACOSX"

ตัวอย่าง: สมมติว่าคุณมีโฟลเดอร์บนเดสก์ท็อปของคุณชื่อโฟลเดอร์พร้อมไฟล์ที่จะซิป
เปิดเทอร์มินัลและเขียนคำสั่งต่อไปนี้:
cd Desktop/Folder
zip -r dir.zip . -x ".*" -x "__MACOSX"

ตอนนี้คุณมีไฟล์ชื่อ dir.zip ที่ไม่มีไฟล์ __MACOSXและ. * ในโฟลเดอร์โฟลเดอร์บนเดสก์ท็อปของคุณ


1
+1 คุณสามารถรวมมันเข้าไปในบริการอัตโนมัติได้หรือไม่?
fd0

4
เทคนิคการพูดถ้าคุณใช้zipในการสร้างไฟล์ซิป "__MACOSX /" zip -r dir.zip .จะไม่ได้รับการสร้างขึ้นในสถานที่แรกดังนั้นทุกคนต้องเป็นคุณจริงๆ อย่างไรก็ตามหาก "__MACOSX /" แอบเข้าไปข้างในโซลูชันของคุณก็จะกำจัดมัน
Edward Falk

2
นอกจากนี้คุณสามารถตรวจสอบได้อย่างง่ายดายว่าไฟล์ zip ของคุณไม่มี __MACOSX อยู่ในนั้นด้วยการพิมพ์ในคอนโซลzipinfo dir.zip
Fostah

13

มีข้อมูลเพิ่มเติม ...

ความเข้าใจของฉันคือ __MACOSX เป็นไดเรกทอรีย่อยที่สร้างขึ้นโดยเครื่องมือ Mac GUI เพื่อเก็บข้อมูลเมตาเช่นแอททริบิวต์เพิ่มเติมที่ไม่สามารถบันทึกในไฟล์ซิปได้

หากคุณใช้เครื่องมือ Mac GUI เพื่อคลายไฟล์ zip เครื่องมือจะรู้ว่าจะทำอย่างไรกับ __MACOSX และไดเรกทอรีจะไม่ได้รับการแตกไฟล์จริง

ปัญหาเกิดขึ้นเมื่อคุณส่งไฟล์. zip ไปยังผู้ใช้ Windows หรือ Linux หรือเพียงแค่ใช้unzipโปรแกรมเอนกประสงค์เพื่อแกะไฟล์ออก เครื่องมือเหล่านั้นจะไม่รู้ว่า __MACOSX นั้นพิเศษและจะทำการแกะออกมา

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

zip -r dir.zip .

หากมันสายเกินไปและคุณมีไฟล์ zip ด้วย __MACOSX แล้วคุณยังสามารถลบออกได้ด้วย:

zip -d foo.zip __MACOSX .DS_Store

ท้ายที่สุดคำตอบที่ได้รับการยอมรับนั้นดีที่สุดเพราะถ้าด้วยเหตุผลบางประการ __MACOSX มีอยู่จริงในไดเรกทอรีของคุณ (เช่นเพราะก่อนหน้านี้คุณเคยunzipสร้างมันขึ้นมา) ตัวเลือก -x จะป้องกันไม่ให้เกิดปัญหา



2

หนึ่งเดียวที่ฉันเคยใช้จริงคือBetterZip [$ 20]

เป็นแอป GUI แต่มีการสนับสนุน Applescript & Services ซึ่งคุณสามารถเรียกใช้ค่าที่ตั้งล่วงหน้าด้วยการตั้งค่าเริ่มต้นของคุณรวมถึงการข้ามไฟล์เฉพาะ Mac เช่น. DS_Store & __MACOSX อาจจะดูคุ้มค่า

จากความช่วยเหลือ BetterZip ...

BetterZip รองรับสองบริการ: หนึ่งบริการสำหรับการสกัดและอีกหนึ่งบริการสำหรับการสร้างคลังเก็บ คุณสามารถกำหนดค่าบริการ BetterZip ที่จะทำกับสถานีล่วงหน้า

หากต้องการใช้บริการให้เลือกไฟล์หรือโฟลเดอร์อย่างน้อยหนึ่งไฟล์ใน Finder และเลือกบีบอัดด้วย BetterZip หรือแยกด้วย BetterZip จากเมนู Finder> Services หรือเมนูย่อย Services ในเมนูตามบริบท

คุณสามารถตั้งค่าแป้นพิมพ์ลัดสำหรับบริการ BetterZip เช่น ^ ⌥⌘Cสำหรับการบีบอัดและ ^ ⌥⌘Eสำหรับแยกไฟล์ ในการตั้งค่าทางลัดสำหรับบริการไปที่การตั้งค่าระบบ> คีย์บอร์ด> แป้นพิมพ์ลัดและเลือกบริการในตารางด้านซ้าย ในตารางด้านขวาเลื่อนไปที่ไฟล์และโฟลเดอร์เลือกบีบอัดด้วย BetterZip และกด↩ ฟิลด์ข้อความที่แก้ไขได้จะปรากฏขึ้น กดปุ่มลัดที่ต้องการ

หนึ่งในสถานีที่บันทึกไว้ของฉัน ...

ป้อนคำอธิบายรูปภาพที่นี่


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