Перейти к содержимому

Что такое папка __MACOSX?

137

Что это за папки __MACOSX, которые я постоянно вижу в zip-файлах, созданных людьми на OSX? Некоторые занимают до 30% файла.

Какая программа создает эту папку __MACOSX и как пользователи Mac могут избежать этой ошибки?

102 652 просмотра
Yada спросил 16 лет назад
Y 856

3 ответа

99

Вот ссылка, которая объясняет это довольно хорошо. Полагаю, уже поздно помогать Яде, но для потомков.

Объяснение ресурсного форка в Википедии

Остальное мое мнение

@nickf: Никогда не видеть эти файлы - не ОСОБЕННОСТЬ тех версий OS X, это FLAW. Люди производят данные, упаковывают их, хранят на разных носителях и так далее. Им нужно знать, что нужно или что не нужно. Сокрытие это держит их в темноте.

Вечная плохая идея скрывать вещи от пользователей: программист, обеспокоенный целесообразностью выполнения своей работы, злоупотребляет чем-то в области конечного пользователя, чтобы облегчить себе задачу.

В этом случае он хранит метаданные в пространстве данных пользователя, а затем скрывает их от пользователя. Он пропустил общую картину: пользователь не узнает о скрытых деталях. Когда он упаковывает свои данные и отправляет их куда-то неожиданно для программиста, недостающие части не будут отправлены или появятся неизвестные части, которые ни пользователь, ни получатель не смогут объяснить.

Скрывать вещи от пользователя плохо. Предполагается, что пользователь глуп, когда более точно программист глуп или ленив.

Чтобы было ясно, эта вредная привычка не ограничивается MAC. Это везде. Это является следствием того, что программисты влюбляются в свои собственные схемы, а поставщики ставят приоритеты перед собственными целями перед потребностями конечного пользователя.

Вкратце.

__MACOSX:
странно пахнущий помет программиста, появляющийся из-под коврика, где их заметили.

Программисты и поставщики: пожалуйста, держите все под открытым небом. Когда вы их скрываете, вы становитесь глупыми, а пользователь не информированным.

Этот ответ был бы лучше, если бы это был просто ответ. Из-за этого отвлекается расширенная болтовня о тупых программистах и ​​ленивых пользователях.

Kristopher Johnson · 11 лет назад · 9

@pbernatchez На самом деле, если вы остановились, чтобы узнать о том, как все выглядит и как они развивались, возможно, вы бы не оставили здесь свою собственную бессмысленную, высокомерную «помет». Ресурсные вилки были (очень приятно!) Деталями реализации до Mac OS X, и пользователи находили их только при взаимодействии с другими системами; Начиная с 90-х годов Apple все чаще перемещается в мир без разветвлений ресурсов, но все еще отклоняется назад, чтобы сохранить совместимость. «Хранить метаданные в пространстве данных пользователя»? WTF? Насколько круто вы должны определить «метаданные» и «пространство данных пользователя», чтобы сказать это? Вы должны ненавидеть файловые системы!

hmijail · 9 лет назад · 1

«Скрывать вещи от пользователя - плохо». Чувак, ты также должен ненавидеть все виды пользовательских интерфейсов, библиотек, абстракций и ... ну, любой вид программирования и компьютеров, более продвинутых, чем счеты.

hmijail · 9 лет назад · 3

Это не отвечает на вопрос. После прочтения этого ответа я до сих пор не представляю, какие метаданные содержатся в папке _MACOSX или что такое ветки ресурсов. Я полагаю, что люди голосуют за это только потому, что они согласны с разглагольствованием?

Atte Juvonen · 9 лет назад · 2

Вот еще одна ссылка, которая, как мне кажется, довольно хорошо объясняет использование ресурсов: http://xahlee.info/UnixResource_dir/macosx.html

GDP2 · 9 лет назад · 0

Хотя я согласен с тем, что эмоционально заряженный тонус бесполезен, я также абсолютно согласен с тем, что создание скрытых вещей, которые иногда необходимы, является действительно плохой идеей, в точности как указано в этом ответе: пользователи либо (а) не будут отправлять скрытые файлы, которые или (b) отправлять скрытые файлы, которые получатель может видеть и не понимать. Эти файлы должны быть либо видны, либо данные должны быть встроены в файлы каким-либо образом, который помечен как «пропускаемый» другими ОС. Скрытые файлы и каталоги должны использоваться в первую очередь для ** защиты ** пользователей, а не для их сохранения в темноте.

Mike Williamson · 7 лет назад · 0
pbernatchez ответил 14 лет назад
P 1 310
54
Принятый ответ

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, они будут отображаться так, как вы их видите.

Это не просто разветвление ресурсов, в файл AppleDouble помещается что-то помимо базового содержимого файла. Apple отходит от ресурсов, но к таким вещам, как расширенные атрибуты, которые также будут храниться в контейнере AppleDouble.

Gordon Davisson · 16 лет назад · 3

Вы делаете это звучит как особенность. .zip файлы намеренно отсутствуют в отделе метаданных. Если вам нужны метаданные, используйте другой формат, а не Mac. Пример правильной реализации zip + метаданных: .jar

Zenexer · 12 лет назад · 12

битая ссылка, пожалуйста, исправьте.

think123 · 12 лет назад · 15

«Так как Windows и другие операционные системы не понимают», - тьфу. Я просто ненавижу такую ​​терминологию

Joe Plante · 12 лет назад · 65

Только что обнаружил: если вы на Mac, используя командную строку, unzip filename.zip распакует каталог __MACOSX /, который вам не нужен, но open filename.zip сделает правильную вещь.

Edward Falk · 10 лет назад · 3

Пустое, бессмысленное объяснение. Так же, как все яблоко. Wtf это ветвь ресурса? о, это мусор Попался!

Ярослав Рахматуллин · 8 лет назад · 0
nickf ответил 16 лет назад
N 1 584
13

Чтобы ответить на ваш последний вопрос:

как пользователи Mac могут избежать этой ошибки?

Пользователи Mac OS X могут установить стороннюю утилиту архивирования, такую ​​как Keka, затем запретить использование Resource Forks, а затем установить ее в качестве компрессора по умолчанию.


Как это сделать с Keka

Скажите Кека, чтобы не использовать Resource Forks

  1. Откройте Keka без файла (из панели запуска, Spotlight и т. Д.)
  2. Нажмите ⌘ Cmd+, ,чтобы открыть настройки
  3. Выберите вкладку « Сжатие »
    Keka "Compression" tab, selected
  4. Проверьте «Исключить вилки ресурсов Mac (например: .DS_Store)»
    A checkbox reading "Exclude Mac resource forks (ex: .DS_Store)"

Сделать Keka компрессором по умолчанию

  1. В том же окне настроек Keka
  2. Выберите вкладку General
    Keka "General" tab, selected
  3. Нажмите «Установить Keka в качестве компрессора / распаковщика по умолчанию» [sic]
    enter image description here

Это можно улучшить, добавив некоторую информацию о последних 2 шагах: «Скажите, чтобы она не использовала Resource Forks, а затем установите ее в качестве компрессора по умолчанию».

Steven C. Howell · 10 лет назад · 1

@ stvn66 Готово! Только к вашему сведению, однако, как правило, это выходит за рамки этих вопросов, именно поэтому я не сделал сначала.

Ben Leggiero · 10 лет назад · 0

Извините, извините. Я не фанат установки стороннего программного обеспечения, чтобы решить проблему, которая может быть исправлена ​​с помощью программного обеспечения по умолчанию. Как указывал Крис Джонсон выше, zip -d удалит ветки ресурсов из zipfile. На самом деле, я думаю, что если вы используете zip в первую очередь, ресурсные вилки не будут добавлены в первую очередь.

Edward Falk · 10 лет назад · 2

@EdwardFalk Это честно! Этот ответ предназначался для решения вопроса «Как заставить его всегда так себя вести?» проблема, а не "Как заставить его так себя вести?" один.

Ben Leggiero · 9 лет назад · 1
Ben Leggiero ответил 10 лет назад
B 318