โฟลเดอร์ __MACOSX คืออะไร


150

โฟลเดอร์ __MACOSX เหล่านี้คืออะไรที่ฉันเห็นเป็นไฟล์ซิปที่ผู้คนใช้บน OSX บางคนใช้ไฟล์มากถึง 30%

โปรแกรมใดกำลังผลิตโฟลเดอร์ __MACOSX เหล่านี้และผู้ใช้ mac สามารถหลีกเลี่ยงข้อผิดพลาดนี้ได้อย่างไร


8
พวกมันน่ารำคาญสุด ๆ ใช่ ๆ และมักไม่มีจุดหมายเพราะทรัพยากรนั้นมักจะว่างเปล่า แต่อย่างน้อยพวกเขาก็ไม่เป็นอันตรายซึ่งแตกต่างจากวิธีการที่ไม่ได้มาตรฐานที่ Apple ใช้กับขนาดไฟล์เก็บข้อมูลขนาด 4GB พร้อมกับสิ่งต่าง ๆ ในตัวของ OS X ซึ่งจะสร้างความสับสนให้กับเครื่องมืออื่น ๆ และมันอาจแย่กว่านั้นคือมันสามารถเก็บสำเนาสองชุดของไฟล์แต่ละไฟล์ที่มีชื่อเดียวกันหนึ่งชุดสำหรับข้อมูลและอีกชุดสำหรับตัวแยกทรัพยากรซึ่งทำให้ไม่สามารถเข้าถึงได้เช่นเดียวกับ Mac OS ก่อนที่เคยใช้ โอ้ Apple ทำไมคุณถึงเกลียดรูปแบบไฟล์มาตรฐาน?
bobince

3
@Bobince: จริง ๆ แล้วการหาทรัพยากรเป็นความคิดที่ดีมาก ... ในเวลานั้น ทุกวันนี้เอฟเฟ็กต์แบบเดียวกันนี้ทำได้โดยการจัดเก็บทรัพยากรเป็นไฟล์เดี่ยว ๆ ซึ่งส่วนใหญ่มีลักษณะคล้ายกับรูปแบบไฟล์มาตรฐาน

16
ไม่มีอะไรผิดปกติกับข้อมูลเมตาเช่นนี้เป็นเพียงว่า Apple มีความสามารถพิเศษในการสร้างรูปแบบของตัวเองและทำให้รูปแบบที่มีอยู่นั้นยุ่งเหยิงด้วยส่วนขยายที่เข้ากันไม่ได้อย่างไร้เหตุผล การมีข้อมูลประเภทเนื้อหาเป็นเมตาดาต้านั้นเป็นสิ่งที่ยอดเยี่ยมและทำให้ฉันเสียใจที่ OS X เคลื่อนไปสู่การแฮ็ก Windows ของนามสกุลไฟล์เป็นทางเลือก แม้ว่าสิ่งนี้จะไม่เลวร้ายเท่าบน Linux ที่ระบบไฟล์รองรับการจัดเก็บข้อมูลเมตาของ Content-Type แต่ไม่มีเดสก์ท็อปที่ใช้มันเลือกที่จะผสมผสานไฟล์นามสกุล / ชื่อรูปแบบและ content-sniffing (urgh!) เฮ้อ OSes ใช่มั้ย
bobince

@bobince: แต่ใช่อย่างน้อยรูปแบบที่พวกเขาทำขึ้นสำหรับสิ่งนี้ไม่ได้ทำอันตรายใด ๆ จริง ๆ นอกเหนือจากรายชื่อไดเรกทอรีที่ยุ่งเหยิงเล็กน้อยและการสูญเสียเป็นหลัก 1 inode และ 1 บล็อกต่อ 1 แยกทรัพยากรว่างเปล่าแยก จะจัดเก็บเนื้อหาไฟล์ใน MFT สำหรับไฟล์ขนาดเล็กดังกล่าว) ซึ่งในกรณีนี้มันจะสูญเสีย "inode" (รายการ MFT)
SamB

9
สามารถแก้ไขได้หลังจากความจริงโดยzip -d filename.zip __MACOSX/\*
Chris Johnson

คำตอบ:


52

http://www.realsoftware.com/listarchives/gettingstarted/2005-09/msg00328.html

Apple ให้ความสามารถในตัวกับไฟล์ ZIP ใน OS X 10.3 และสูงกว่าและไฟล์เหล่านี้เป็นผลมาจากการจัดเก็บอย่างปลอดภัยของ Resource Forks ของ Apple คุณจะไม่เห็นไฟล์เหล่านี้ที่ใช้ OS X 10.3 หรือสูงกว่า แต่เนื่องจาก Windows และระบบปฏิบัติการอื่นไม่เข้าใจ Resource Forks รูปแบบพิเศษนี้พวกเขาจะปรากฏตามที่คุณเห็น


4
มันไม่ได้เป็นเพียงแค่ส้อมทรัพยากรไม่มีอะไรนอกเหนือจากเนื้อหาไฟล์พื้นฐานที่ได้รับการใส่ในไฟล์ AppleDouble แอปเปิ้ลย้ายออกจากการใช้ทรัพยากร แต่ไปสู่สิ่งต่าง ๆ เช่นแอททริบิวต์เพิ่มเติมที่จะถูกเก็บไว้ใน AppleDouble container
Gordon Davisson

14
คุณทำให้มันฟังดูเหมือนเป็นฟีเจอร์ ไฟล์. zip กำลังขาดความตั้งใจในแผนกข้อมูลเมตา หากคุณต้องการข้อมูลเมตาให้ใช้รูปแบบอื่นไม่ใช่ Mac ตัวอย่างการติดตั้ง zip + metadata ที่เหมาะสม: .jar
Zenexer

16
ลิ้งค์เสียโปรดแก้ไข
Lucas - Better Coding Academy

71
"เนื่องจาก Windows และระบบปฏิบัติการอื่นไม่เข้าใจ" - ฮึ ฉันเกลียดคำศัพท์แบบนี้
Joe Plante

5
เพิ่งค้นพบ: หากคุณใช้ Mac โดยใช้บรรทัดคำสั่งunzip filename.zipจะคลายไดเรกทอรี __MACOSX / ซึ่งคุณไม่ต้องการ แต่open filename.zipจะทำสิ่งที่ถูกต้อง
Edward Falk

107

นี่คือลิงค์ที่อธิบายได้ค่อนข้างดี ฉันคิดว่ามันช้าไปหน่อยที่จะช่วย Yada แต่สำหรับคนรุ่นหลัง

คำอธิบายของตัวแยกทรัพยากรที่วิกิพีเดีย

ส่วนที่เหลือเป็นความคิดเห็นของฉัน:

@nickf: ไม่เคยเห็นไฟล์เหล่านี้ไม่ได้เป็นคุณสมบัติของ OS X เวอร์ชันเหล่านั้นมันเป็นข้อบกพร่อง ผู้คนผลิตข้อมูลห่อมันเก็บไว้ในสื่อต่าง ๆ และอื่น ๆ พวกเขาจำเป็นต้องรู้สิ่งที่จำเป็นหรือสิ่งที่ไม่จำเป็น การซ่อนมันทำให้พวกมันอยู่ในความมืด

ความคิดเก่า ๆ ที่ไม่ดีเกี่ยวกับการซ่อนสิ่งต่าง ๆ จากผู้ใช้: โปรแกรมเมอร์ที่เกี่ยวข้องกับความได้เปรียบในการทำให้งานของเขาสำเร็จลวงตาบางอย่างในโดเมนของผู้ใช้ปลายทางเพื่อให้ง่ายสำหรับตัวเขาเอง

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

การซ่อนสิ่งต่าง ๆ จากผู้ใช้ไม่ดี มันถือว่าผู้ใช้เป็นคนโง่เมื่อถูกต้องมากกว่าก็คือโปรแกรมเมอร์ที่โง่หรือขี้เกียจ

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

โดยสังเขป

__MACOSX:
หยดโปรแกรมเมอร์กลิ่นแปลก ๆ โผล่ขึ้นมาจากใต้พรมที่ถูกกวาด

โปรแกรมเมอร์และผู้ขาย: โปรดเปิดทุกอย่างไว้ในที่โล่ง เมื่อคุณซ่อนพวกเขาคุณทำให้ตัวเองงี่เง่าและผู้ใช้ที่ไม่รู้


12
คำตอบนี้จะดีกว่าถ้ามันเป็นเพียงคำตอบ การคุยโวแบบขยายเกี่ยวกับโปรแกรมเมอร์ที่โง่และผู้ใช้ที่ขี้เกียจจะเบี่ยงเบนความสนใจไปจากมัน
Kristopher Johnson

1
@bernatchez จริง ๆ แล้วถ้าคุณหยุดเรียนรู้เกี่ยวกับสิ่งต่าง ๆ ที่มีลักษณะและวิธีการที่พวกเขาพัฒนาคุณอาจจะไม่ออกจากที่นี่ด้วยตัวคุณเอง ส้อมทรัพยากรเป็นรายละเอียดการนำไปใช้งาน (ดีจริงๆ!) pre-Mac OS X และผู้ใช้พบพวกเขาเมื่อเชื่อมต่อกับระบบอื่นเท่านั้น นับตั้งแต่ยุค 90 เป็นต้นมา Apple ได้ย้ายไปยังโลกที่ไม่มีทรัพยากร แต่ก็ยังงอไปข้างหลังเพื่อให้เข้ากันได้ "เก็บข้อมูลเมตาในพื้นที่ข้อมูลของผู้ใช้" หรือไม่ WTF? คุณต้องกำหนด "ข้อมูลเมตา" และ "พื้นที่ข้อมูลของผู้ใช้" เป็นทวีคูณอย่างไร? คุณต้องเกลียดระบบไฟล์!
hmijail

3
"การซ่อนสิ่งต่าง ๆ จากผู้ใช้ไม่ดี" ผู้ชายคุณต้องเกลียดการใช้งานอินเทอร์เฟซผู้ใช้และไลบรารี่และนามธรรมและ ... เอ่อการเขียนโปรแกรมและคอมพิวเตอร์ทุกชนิดนั้นล้ำหน้ากว่าลูกคิด
hmijail

4
นี่ไม่ได้ตอบคำถาม หลังจากอ่านคำตอบนี้ฉันยังไม่ทราบเลยว่าข้อมูลเมตาใดที่มีอยู่ในโฟลเดอร์ _MACOSX หรือทรัพยากรใดที่มีอยู่ ฉันเดาว่าผู้คนกำลังสนใจเรื่องนี้เพียงเพราะพวกเขาเห็นด้วยกับการคุยโว
Atte Juvonen

1
ในขณะที่ฉันยอมรับว่าเสียงที่เรียกเก็บทางอารมณ์ไม่ได้มีประโยชน์ แต่ฉันก็เห็นด้วยอย่างยิ่งว่าการสร้างสิ่งที่ซ่อนเร้นที่จำเป็นในบางครั้งนั้นเป็นความคิดที่ไม่ดีจริงๆอย่างแม่นยำตามที่ระบุไว้ในคำตอบนี้: ผู้ใช้จะ จำเป็นหรือ (ข) ส่งไฟล์ที่ซ่อนซึ่งผู้รับสามารถมองเห็นและไม่เข้าใจ ไฟล์เหล่านี้ควรปรากฏให้เห็นหรือควรฝังข้อมูลลงในไฟล์ในบางลักษณะที่ถูกตั้งค่าสถานะเป็น "ข้ามได้" โดยระบบปฏิบัติการอื่น ไฟล์และไดเรกทอรีที่ซ่อนอยู่ควรใช้เพื่อปกป้องผู้ใช้เป็นหลักโดยไม่เก็บไว้ในที่มืด
Mike Williamson

16

ในการตอบคำถามสุดท้ายของคุณ:

ผู้ใช้ mac จะหลีกเลี่ยงข้อผิดพลาดนี้ได้อย่างไร

ผู้ใช้ Mac OS X สามารถติดตั้งยูทิลิตี้เก็บถาวรของบุคคลที่สามเช่นKekaจากนั้นบอกให้ไม่ใช้ Resource Forks จากนั้นตั้งเป็นคอมเพรสเซอร์เริ่มต้น


วิธีการทำเช่นนี้กับ Keka

บอก Keka ว่าอย่าใช้ Resource Forks

  1. เปิด Kekaโดยไม่มีไฟล์ (จาก Launchpad, Spotlight ฯลฯ )
  2. กด⌘ Cmd+ ,เพื่อเปิดการตั้งค่า
  3. เลือกแท็บการบีบอัด
    เลือกแท็บ "การบีบอัด" Keka
  4. ทำเครื่องหมายที่"ไม่รวมส้อมทรัพยากร Mac (เช่น: .DS_Store)"
    ช่องทำเครื่องหมายที่อ่าน "ยกเว้นทรัพยากร Mac forks (เช่น: .DS_Store)"

ทำให้ Keka เป็นคอมเพรสเซอร์เริ่มต้น

  1. ในหน้าต่างการตั้งค่า Kekaเดียวกัน
  2. เลือกแท็บทั่วไป
    เลือกแท็บ Keka "ทั่วไป"
  3. คลิก "ตั้งค่า Keka เป็นค่าเริ่มต้นคอมเพรสเซอร์ / uncompressor" [sic]
    ป้อนคำอธิบายรูปภาพที่นี่

1
นี่อาจเป็นการปรับปรุงการเพิ่มข้อมูลของฉันใน 2 ขั้นตอนล่าสุด "บอกให้อย่าใช้ Resource Forks จากนั้นตั้งเป็นคอมเพรสเซอร์เริ่มต้น"
สตีเวนซีโฮเวล

@ stvn66 เรียบร้อยแล้ว! เพียงแค่ FYI นั้นมักจะอยู่นอกขอบเขตของคำถามเหล่านี้ซึ่งเป็นสาเหตุที่ฉันไม่ได้ในตอนแรก
Ben Leggiero

2
Downvoting ขออภัย ฉันไม่ใช่แฟนของการติดตั้งซอฟต์แวร์บุคคลที่สามเพื่อแก้ไขปัญหาที่สามารถแก้ไขได้ด้วยซอฟต์แวร์เริ่มต้น ดังที่ Chris Johnson ชี้ให้เห็นข้างต้นzip -dจะลบส้อมทรัพยากรออกจากไฟล์ zip อันที่จริงฉันคิดว่าถ้าคุณใช้ zip ในตอนแรกทรัพยากรจะไม่ถูกเพิ่มเข้าไปในตำแหน่งแรก
Edward Falk

1
@EdwardFalk มันยุติธรรม! คำตอบนี้มีขึ้นเพื่อแก้ปัญหา "ฉันจะทำให้มันทำงานอย่างนี้ได้อย่างไร" ปัญหาไม่ใช่ "ฉันจะทำให้มันทำงานแบบนี้ครั้งเดียวได้อย่างไร" หนึ่ง.
Ben Leggiero
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.