¿Qué es la carpeta __MACOSX?

152

¿Cuáles son estas carpetas __MACOSX que sigo viendo en archivos zip creados por personas en OSX? Algunos toman hasta el 30% del archivo.

¿Qué programa produce esta carpeta __MACOSX y cómo pueden los usuarios de Mac evitar este error?

Yada
fuente
8
Son súper irritantes, sí, y generalmente no tienen sentido ya que los tenedores de recursos a menudo están vacíos. Pero al menos son inofensivos, a diferencia del enfoque no estándar que Apple ha adoptado para tamaños de archivo> 4GB con el material OS X incorporado, lo que confundirá cualquier otra herramienta y se romperá nuevamente para archivos suficientemente grandes. Y oye, podría ser peor, podría estar almacenando dos copias de cada archivo con el mismo nombre, una para los datos y otra para la bifurcación de recursos, lo que a menudo hace que sea imposible acceder a ellas, como solía hacer Mac anterior a OSX. Oh Apple, ¿por qué odias los formatos de archivo estándar?
bobince
3
@bobince: en realidad, los tenedores de recursos eran una muy buena idea ... en ese momento. En estos días, el mismo efecto se logra almacenando recursos como archivos individuales, la mayoría de los cuales se parecen mucho a los formatos de archivo estándar.
16
No hay nada malo con los metadatos como tales, ¡es solo que Apple tiene la habilidad de crear sus propios formatos y estropear los formatos existentes con extensiones gratuitas incompatibles! Tener los datos de tipo de contenido como metadatos es en sí mismo una gran cosa y me entristece que OS X se esté moviendo hacia el truco de Windows de extensiones de archivos como alternativa. Aunque esto no es tan malo como en Linux, donde el sistema de archivos admite el almacenamiento de metadatos de tipo de contenido, pero ningún escritorio lo usa, prefiriendo una mezcla completamente rota de extensiones de archivo / patrones de nombre y detección de contenido (¡urgh!). Suspiro, OSes eh?
bobince
@bobince: Pero sí, al menos el formato que crearon para esto no causa ningún daño real, aparte de aglomerar ligeramente las listas de directorios y desperdiciar esencialmente 1 inodo y 1 bloque por cada recurso vacío extraído, a menos que use algo como NTFS (que almacenará el contenido del archivo en la MFT para archivos tan pequeños), en cuyo caso simplemente desperdicia el "inodo" (entrada MFT).
SamB
99
Se puede arreglar después del hecho porzip -d filename.zip __MACOSX/\*
Chris Johnson

Respuestas:

52

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

Apple proporciona capacidad incorporada para archivos ZIP en OS X 10.3 y superior, y estos archivos son el resultado de que Apple almacena de forma segura Resource Forks. Nunca vería estos archivos con OS X 10.3 o superior, pero como Windows y otros sistemas operativos no entienden esta forma especial de Resource Forks, aparecerán tal como los ve.

nickf
fuente
44
No se trata solo de recursos de recursos, cualquier cosa más allá del contenido básico del archivo se coloca en el archivo AppleDouble. Apple se está alejando de las bifurcaciones de recursos, pero hacia cosas como atributos extendidos que también se almacenarán en el contenedor AppleDouble.
Gordon Davisson
14
Lo haces sonar como una característica. Los archivos .zip faltan intencionalmente en el departamento de metadatos. Si desea metadatos, use un formato diferente, no una Mac. Ejemplo de implementación correcta de metadatos zip +: .jar
Zenexer
16
enlace muerto, por favor arregla.
Lucas - Better Coding Academy
71
"ya que Windows y otros sistemas operativos no entienden" - Ugh. Simplemente odio este tipo de terminología
Joe Plante
55
Recién descubierto: si está en una Mac, utilizando la línea de comando, unzip filename.zipdesempaquetará el directorio __MACOSX /, que no desea, pero open filename.ziphará lo correcto.
Edward Falk
107

Aquí hay un enlace que lo explica bastante bien. Supongo que es un poco tarde para ayudar a Yada, pero para la posteridad.

Explicación de la bifurcación de recursos en Wikipedia

El resto es mi opinión:

@nickf: Nunca ver estos archivos no es una CARACTERÍSTICA de esas versiones de OS X, es un FALLO. Las personas producen datos, los envuelven, los almacenan en diferentes medios, etc. Necesitan saber qué se necesita o qué no se necesita. Esconderlo los mantiene en la oscuridad.

La vieja y mala idea de ocultar cosas a los usuarios: un programador, preocupado por la conveniencia de realizar su propio trabajo, abusa de algo en el dominio del usuario final, para facilitarle las cosas.

En este caso, almacenó metadatos en el espacio de datos del usuario, luego se los ocultó. Se perdió el panorama general: el usuario no se dará cuenta de los detalles ocultos. Cuando empaqueta sus datos y los envía a un lugar no previsto por el programador, no se enviarán las piezas faltantes o llegarán piezas desconocidas que ni el usuario ni el destinatario pueden explicar.

Ocultar cosas del usuario es malo. Asume que el usuario es estúpido, cuando más exactamente es que el programador es estúpido o flojo.

Para ser claros, este mal hábito no se limita a MAC. Está en todas partes. Es una consecuencia de que los programadores se enamoren de sus propios esquemas y los proveedores prioricen sus propios objetivos antes que las necesidades del usuario final.

En breve.

__MACOSX:
excrementos de programadores con olores extraños que emergen de debajo de la alfombra donde fueron barridos.

Programadores y vendedores: mantenga las cosas al aire libre. Cuando los ocultas, te vuelves estúpido y el usuario no está informado.

pbernatchez
fuente
12
Esta respuesta sería mejor si fuera solo una respuesta. Las protestas prolongadas sobre programadores estúpidos y usuarios perezosos le restan valor.
Kristopher Johnson
1
@pbernatchez En realidad, si te detuvieras a aprender sobre cómo se veían las cosas y cómo evolucionaron, probablemente no dejarías aquí tus propios "excrementos" desvergonzados y arrogantes. Las bifurcaciones de recursos eran un detalle de implementación (¡realmente bueno!) Anteriores a Mac OS X y los usuarios solo las encontraban al interactuar con otros sistemas; Desde los años 90, Apple se ha movido cada vez más a un mundo sin recursos de tenedores, pero aún se está doblando hacia atrás para mantener la compatibilidad. ¿"Almacenar metadatos en el espacio de datos del usuario"? WTF? ¿Qué tan retorcido tienes que definir "metadatos" y "espacio de datos del usuario" para decir eso? ¡Debes odiar los sistemas de archivos!
hmijail
3
"Ocultar cosas del usuario es malo". Hombre, también debes odiar todo tipo de interfaces de usuario, bibliotecas, abstracciones y ... bueno, cualquier tipo de programación y computadoras más avanzadas que un ábaco.
hmijail
44
Esto no responde la pregunta. Después de leer esta respuesta, todavía no tengo idea de qué metadatos están contenidos en la carpeta _MACOSX, o qué son los tenedores de recursos. ¿Supongo que la gente está votando esto solo porque están de acuerdo con la queja?
Atte Juvonen
1
Si bien estoy de acuerdo en que el tono cargado de emociones no es útil, también estoy absolutamente de acuerdo en que crear cosas ocultas que ocasionalmente se necesitan es una muy mala idea, precisamente como se indica en esta respuesta: los usuarios (a) no enviarán archivos ocultos que sean es necesario o (b) envía archivos ocultos que el destinatario puede ver y ninguno de los dos entiende. Estos archivos deben estar visibles o los datos deben estar incrustados en los archivos de alguna manera que esté marcada como "saltable" por otros sistemas operativos. Los archivos y directorios ocultos deben usarse principalmente para proteger a los usuarios, no para mantenerlos en la oscuridad.
Mike Williamson
16

Para responder a su pregunta final:

¿Cómo pueden los usuarios de Mac evitar este error?

Los usuarios de Mac OS X pueden instalar una utilidad de archivo de terceros como Keka , luego decirle que no use Resource Forks y luego configurarlo como el compresor predeterminado.


Cómo hacer esto con Keka

Dile a Keka que no use los Forks de recursos

  1. Abra Keka sin un archivo (desde Launchpad, Spotlight, etc.)
  2. Presione ⌘ Cmd+ ,para abrir Preferencias
  3. Seleccione la pestaña Compresión
    Ficha "Compresión" de Keka, seleccionada
  4. Marque "Excluir bifurcaciones de recursos de Mac (por ejemplo: .DS_Store)"
    Una casilla de verificación que dice "Excluir bifurcaciones de recursos de Mac (por ejemplo: .DS_Store)"

Haga de Keka el compresor predeterminado

  1. En la misma ventana de Preferencias de Keka
  2. Seleccione la pestaña General
    Keka pestaña "General", seleccionada
  3. Haga clic en "Establecer Keka como compresor / descompresor predeterminado" [sic]
    ingrese la descripción de la imagen aquí
Ben Leggiero
fuente
1
Esto podría mejorarse agregando información sobre los últimos 2 pasos, "dígale que no use Resource Forks, luego configúrelo como el compresor predeterminado".
Steven C. Howell
@ stvn66 ¡Listo! Sin embargo, solo para su información, eso generalmente está fuera del alcance de estas preguntas, por lo que no lo hice al principio.
Ben Leggiero
2
Votación negativa, lo siento. No soy fanático de instalar software de terceros para solucionar un problema que se puede solucionar con el software predeterminado. Como Chris Johnson señaló anteriormente, zip -deliminará los tenedores de recursos de un archivo zip. De hecho, creo que si usas zip en primer lugar, los tenedores de recursos no se agregan en primer lugar.
Edward Falk
1
@EdwardFalk ¡Eso es justo! Esta respuesta estaba destinada a resolver el "¿Cómo hago para que siempre se comporte de esta manera?" problema, no el "¿Cómo hago para que se comporte de esta manera una vez?" uno.
Ben Leggiero el