Câu hỏi Thư mục __MACOSX là gì?


Các thư mục __MACOSX này mà tôi tiếp tục thấy trong các tệp zip được tạo bởi những người trên OSX là gì? Một số mất đến 30% của tập tin.

Chương trình nào đang tạo ra thư mục __MACOSX này và làm cách nào người dùng mac có thể tránh được lỗi này?


134
2018-02-03 22:37


gốc


Chúng cực kỳ khó chịu, có, và thường vô nghĩa vì dĩa tài nguyên thường trống rỗng. Nhưng ít nhất chúng vô hại, không giống như cách tiếp cận phi tiêu chuẩn mà Apple đã đưa đến kích thước lưu trữ> 4GB với công cụ OS X tích hợp, sẽ gây nhầm lẫn cho bất kỳ công cụ nào khác và phá vỡ một lần nữa cho các tệp đủ lớn. Và hey, nó có thể tồi tệ hơn, nó có thể lưu trữ hai bản sao của mỗi tập tin với cùng tên, một cho dữ liệu và một cho ngã ba tài nguyên, thường làm cho nó không thể truy cập, hoặc, như trước Mac OSX sử dụng để. Oh Apple, tại sao bạn ghét các định dạng tệp chuẩn? - bobince
@bobince: thực sự, dĩa tài nguyên là một ý tưởng rất hay ... vào thời điểm đó. Những ngày này, hiệu ứng tương tự cũng đạt được bằng cách lưu trữ tài nguyên dưới dạng tệp riêng lẻ, hầu hết trong số đó trông khá giống với các định dạng tệp chuẩn.
Không có gì sai với siêu dữ liệu như vậy, nó chỉ là Apple có một sở trường của việc tạo nên các định dạng của riêng mình và làm rối tung các định dạng hiện có với các phần mở rộng không tương thích một cách vô cớ! Việc có dữ liệu kiểu nội dung dưới dạng siêu dữ liệu tự nó là một điều tuyệt vời và điều đó khiến tôi thấy rằng OS X đang di chuyển theo hướng hack Windows của các phần mở rộng tập tin như một sự thay thế. Mặc dù điều này không tệ như trên Linux, nơi mà hệ thống tập tin hỗ trợ lưu trữ siêu dữ liệu kiểu nội dung, nhưng không có máy tính để bàn nào sử dụng nó, thích một hỗn hợp hoàn toàn bị hỏng của tệp mở rộng / tên mẫu và nội dung ngửi (urgh!). Sigh, OSes eh? - bobince
@bobince: Nhưng có, ít nhất là định dạng mà họ đã tạo cho điều này không thực hiện bất kỳ tác hại thực sự nào, ngoài các danh sách thư mục lộn xộn một chút và lãng phí về bản chất 1 inode và 1 khối cho mỗi tài nguyên trống được trích xuất, trừ khi bạn sử dụng một cái gì đó như NTFS (sẽ lưu trữ nội dung tệp trong MFT cho các tệp nhỏ như vậy), trường hợp nó chỉ lãng phí "inode" (mục MFT). - SamB
Có thể được cố định sau khi thực tế zip -d filename.zip __MACOSX/\* - Chris Johnson


Các câu trả lời:


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

Apple cung cấp khả năng tích hợp cho các tệp ZIP trong OS X 10.3 trở lên và các tệp này là kết quả của việc Apple lưu trữ Resource Forks một cách an toàn. Bạn sẽ không bao giờ thấy những tệp này chạy OS X 10.3 trở lên, nhưng vì Windows và các hệ điều hành khác không hiểu dạng đặc biệt này của Resource Forks, chúng sẽ xuất hiện khi bạn nhìn thấy chúng.


53
2018-02-03 22:39



Nó không chỉ là tài nguyên dĩa, bất cứ điều gì ngoài nội dung tập tin cơ bản được đưa vào tập tin AppleDouble. Apple di chuyển ra khỏi các nguồn tài nguyên, nhưng đối với những thứ như các thuộc tính mở rộng cũng sẽ được lưu trữ trong thùng chứa AppleDouble. - Gordon Davisson
Bạn làm cho nó giống như một tính năng. Các tệp .zip đang cố tình thiếu trong bộ phận siêu dữ liệu. Nếu bạn muốn siêu dữ liệu, hãy sử dụng định dạng khác, không phải máy Mac. Ví dụ về triển khai zip + siêu dữ liệu thích hợp: .jar - Zenexer
liên kết chết, xin vui lòng sửa chữa. - think123
"vì Windows và các hệ điều hành khác không hiểu" - Ugh. Tôi chỉ ghét loại thuật ngữ này - Joe Plante
Chỉ cần phát hiện: nếu bạn đang sử dụng máy Mac, sử dụng dòng lệnh, unzip filename.zip sẽ giải nén thư mục __MACOSX / mà bạn không muốn, nhưng open filename.zip sẽ làm điều đúng. - Edward Falk


Đây là một liên kết giải thích nó khá tốt. Tôi cho rằng có hơi muộn để giúp Yada, nhưng với hậu thế.

Giải thích về tài nguyên tại Wikipedia

Phần còn lại là ý kiến ​​của tôi:

@nickf: Không bao giờ thấy các tệp này không phải là một tính năng của các phiên bản OS X đó là một FLAW. Mọi người sản xuất dữ liệu, gói dữ liệu lên, lưu trữ trên các phương tiện khác nhau, v.v. Họ cần phải biết những gì cần thiết hoặc những gì không cần thiết. Ẩn nó giữ chúng trong bóng tối.

Ý tưởng tồi tệ cũ về tuổi ẩn nội dung khỏi người dùng: Một lập trình viên, quan tâm đến việc hoàn thành công việc của riêng mình, lạm dụng một cái gì đó trong miền của người dùng cuối, để làm cho nó dễ dàng cho chính mình.

Trong trường hợp này, ông đã lưu trữ dữ liệu meta trong không gian dữ liệu của người dùng, sau đó ông ẩn nó khỏi người dùng. Anh ấy đã bỏ lỡ bức tranh lớn: Người dùng sẽ không nhận biết được các chi tiết ẩn. Khi anh ta gói dữ liệu của mình và gửi nó đến một nơi nào đó bất ngờ bởi lập trình viên, thiếu bộ phận sẽ không nhận được vận chuyển hoặc không rõ các bộ phận sẽ đến mà không phải người dùng cũng như người nhận có thể giải thích.

Ẩn nội dung khỏi người dùng là xấu. Nó giả định người dùng là ngu ngốc, khi chính xác hơn là lập trình viên ngu ngốc, hay lười biếng.

Rõ ràng, thói quen xấu này không bị giới hạn trong MAC. Nó ở khắp mọi nơi. Đó là một hệ quả của các lập trình viên yêu thích các chương trình và nhà cung cấp riêng của họ, ưu tiên các mục tiêu của họ trước nhu cầu của người dùng cuối.

Tóm lại.

__MACOSX:
phân lập lập trình ngửi mùi lạ xuất hiện từ dưới tấm thảm nơi chúng bị quét.

Lập trình viên và nhà cung cấp: Vui lòng giữ mọi thứ ở trạng thái mở. Khi bạn ẩn chúng, bạn làm cho mình ngu ngốc và người dùng không hiểu rõ.


98
2017-12-03 01:31



Câu trả lời này sẽ tốt hơn nếu đó chỉ là câu trả lời. Các ranting mở rộng về lập trình ngu ngốc và người dùng lười biếng làm giảm từ nó. - Kristopher Johnson
@pbernatchez Trên thực tế, nếu bạn dừng lại để tìm hiểu về cách mọi thứ trông như thế nào và làm thế nào họ phát triển, có lẽ bạn sẽ không để lại ở đây ranty của riêng bạn, kiêu ngạo "phân". Dĩa tài nguyên là một chi tiết thực hiện (thực sự tốt đẹp!) Trước Mac OS X và người dùng chỉ tìm thấy chúng khi giao tiếp với các hệ thống khác; kể từ những năm 90, Apple đã ngày càng chuyển sang một thế giới không có nguồn tài nguyên, nhưng vẫn uốn cong ngược lại để giữ tính tương thích. "Lưu trữ siêu dữ liệu trong không gian dữ liệu của người dùng"? WTF? Bạn phải định nghĩa "siêu dữ liệu" và "không gian dữ liệu của người dùng" để nói như thế nào? Bạn phải ghét các hệ thống tập tin! - hmijail
"Ẩn những thứ từ người dùng là xấu". Người đàn ông, bạn cũng phải ghét tất cả các loại giao diện người dùng, và thư viện, và trừu tượng, và ... tốt, bất kỳ loại lập trình và máy tính tiên tiến hơn một bàn tính. - hmijail
Điều này không trả lời câu hỏi. Sau khi đọc câu trả lời này, tôi vẫn không có ý tưởng về siêu dữ liệu nào được chứa trong thư mục _MACOSX hoặc các nguồn tài nguyên nào. Tôi đoán mọi người đang upvoting này chỉ vì họ đồng ý với rant? - Atte Juvonen
Đây là một liên kết khác mà tôi nghĩ giải thích cho nguồn tài nguyên khá tốt: xahlee.info/UnixResource_dir/macosx.html - GDP2


Để trả lời câu hỏi cuối cùng của bạn:

làm cách nào người dùng mac có thể tránh được lỗi này?

Người dùng Mac OS X có thể cài đặt tiện ích lưu trữ của bên thứ ba như Keka, sau đó yêu cầu nó không sử dụng Resource Forks, sau đó đặt nó làm máy nén mặc định.


Làm thế nào để làm điều này với Keka

Yêu cầu Keka không sử dụng Resource Forks

  1. Mở Keka không có tệp (Từ Launchpad, Spotlight, v.v.)
  2. nhấn ⌘ Cmd+, đến mở Tùy chọn
  3. Chọn Nén chuyển hướng
    Keka "Compression" tab, selected
  4. Kiểm tra "Loại trừ các loại tài nguyên Mac OS X (ví dụ: .DS_Store)" 
    A checkbox reading "Exclude Mac OS X resource forks (ex: .DS_Store)"

Làm cho Keka trở thành máy nén mặc định

  1. Trong cùng một Tùy chọn Keka cửa sổ
  2. Chọn Chung chuyển hướng
    Keka "General" tab, selected
  3. Nhấp vào "Đặt Keka làm máy nén / giải nén mặc định" [sic]
    enter image description here

13
2017-11-05 15:03



Điều này có thể được cải thiện thêm một số thông tin của tôi trên 2 bước cuối cùng, "bảo nó không sử dụng Resource Forks, sau đó đặt nó làm máy nén mặc định." - Steven C. Howell
@ stvn66 Xong! Chỉ là FYI, tuy nhiên, điều đó thường nằm ngoài phạm vi của những câu hỏi này, đó là lý do tại sao tôi không ở đầu tiên. - Ben Leggiero
Downvoting, xin lỗi. Tôi không phải là người hâm mộ cài đặt phần mềm của bên thứ ba để khắc phục sự cố có thể được khắc phục bằng phần mềm mặc định. Như Chris Johnson đã chỉ ra ở trên, zip -d sẽ loại bỏ các nguồn tài nguyên từ một zipfile. Trong thực tế, tôi nghĩ rằng nếu bạn sử dụng zip ở nơi đầu tiên, các nguồn tài nguyên dĩa không được thêm vào ở nơi đầu tiên. - Edward Falk
@EdwardFalk Thật công bằng! Câu trả lời này có nghĩa là để giải quyết "Làm thế nào để làm cho nó luôn cư xử theo cách này?" vấn đề, không phải là "Làm thế nào để làm cho nó hoạt động theo cách này một lần?" một. - Ben Leggiero