Che cos'è la cartella __MACOSX?


152

Quali sono queste cartelle __MACOSX che continuo a vedere nei file zip creati da persone su OSX? Alcuni occupano fino al 30% del file.

Quale programma stanno producendo queste cartelle __MACOSX e come possono gli utenti mac evitare questo errore?


8
Sono super-irritanti, sì, e di solito inutili poiché le forchette delle risorse sono così spesso vuote. Ma almeno sono innocui, a differenza dell'approccio non standard che Apple ha adottato per dimensioni di archivio> 4 GB con roba OS X integrata, che confonderà qualsiasi altro strumento e si interromperà nuovamente per file sufficientemente grandi. Ehi, potrebbe essere peggio, potrebbe essere la memorizzazione di due copie di ogni file con lo stesso nome, una per i dati e una per il fork delle risorse, rendendo spesso impossibile l'accesso a entrambi, come era solito fare con Mac pre-OSX. Oh Apple, perché odi i formati di file standard?
mercoledì

3
@bobince: in realtà, le fork di risorse erano un'ottima idea ... al momento. Al giorno d'oggi, lo stesso effetto si ottiene archiviando risorse come singoli file, la maggior parte dei quali assomigliano più o meno ai formati di file standard.

16
Niente di sbagliato con i metadati in quanto tali, è solo che Apple ha un tale talento nel creare i propri formati e rovinare i formati esistenti con estensioni gratuitamente incompatibili! Avere i dati del tipo di contenuto come metadati è di per sé una cosa grandiosa e mi rattrista che OS X si stia muovendo verso l'hack delle estensioni dei file in alternativa. Anche se questo non è male come su Linux, dove il filesystem supporta l'archiviazione dei metadati Content-Type, ma nessun desktop lo usa, preferendo una combinazione completamente spezzata di estensione di file / schemi di nomi e sniffing dei contenuti (urgh!). Sospiro, OS eh?
bobince

@bobince: Ma sì, almeno il formato che hanno creato per questo non fa alcun danno reale, a parte un elenco di directory leggermente ingombrante e uno spreco essenzialmente di 1 inode e 1 blocco per fork di risorse vuoto estratto, a meno che tu non usi qualcosa come NTFS (che memorizzerà il contenuto del file nella MFT per file così piccoli), nel qual caso spreca semplicemente l '"inode" (voce MFT).
SamB,

9
Può essere risolto dopo il fatto dazip -d filename.zip __MACOSX/\*
Chris Johnson il

Risposte:


52

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

Apple offre funzionalità integrate per i file ZIP in OS X 10.3 e versioni successive e questi file sono il risultato della memorizzazione sicura di Forks di risorse di Apple. Non vedresti mai questi file che eseguono OS X 10.3 o versioni successive, ma poiché Windows e altri sistemi operativi non comprendono questa forma speciale di fork delle risorse, appariranno come li vedi.


4
Non si tratta solo di fork di risorse, qualsiasi cosa al di là del contenuto del file di base viene inserita nel file AppleDouble. Apple si sta allontanando dalle fork di risorse, ma verso cose come attributi estesi che verranno anche memorizzati nel contenitore AppleDouble.
Gordon Davisson,

14
Lo fai sembrare una caratteristica. I file .zip mancano intenzionalmente nel reparto metadati. Se desideri metadati, utilizza un formato diverso, non un Mac. Esempio di corretta implementazione di zip + metadati: .jar
Zenexer,

16
link non funzionante, per favore correggi.
Lucas - Better Coding Academy,

71
"poiché Windows e altri sistemi operativi non capiscono" - Ugh. Odio questo tipo di terminologia
Joe Plante,

5
Appena scoperto: se sei su un Mac, usando la riga di comando, unzip filename.zipdecomprimerai la directory __MACOSX /, che non vuoi, ma open filename.zipfarà la cosa giusta.
Edward Falk,

107

Ecco un link che lo spiega abbastanza bene. Suppongo che sia un po 'tardi per aiutare Yada, ma per i posteri.

Spiegazione del fork delle risorse su Wikipedia

Il resto è la mia opinione:

@nickf: non vedere mai questi file non è una CARATTERISTICA di quelle versioni di OS X, è un FLAW. Le persone producono dati, li racchiudono, li archiviano su supporti diversi e così via. Devono sapere cosa è necessario o cosa non è necessario. Nasconderlo li tiene al buio.

L'antica e cattiva idea di nascondere cose agli utenti: un programmatore, preoccupato della possibilità di realizzare il proprio lavoro, abusa di qualcosa nel dominio dell'utente finale, per renderlo facile per se stesso.

In questo caso ha memorizzato i metadati nello spazio dati dell'utente, quindi li ha nascosti dall'utente. Ha perso il quadro generale: l'utente non verrà a conoscenza dei dettagli nascosti. Quando impacchetta i suoi dati e li spedisce in qualche luogo non previsto dal programmatore, le parti mancanti non verranno spedite o arriveranno parti sconosciute che né l'utente né il destinatario possono spiegare.

Nascondere cose all'utente è male. Presuppone che l'utente sia stupido, quando più precisamente è il programmatore che è stupido o pigro.

Per essere chiari, questa cattiva abitudine non si limita al MAC. È ovunque. È una conseguenza del fatto che i programmatori si innamorano dei propri schemi e dei fornitori che danno la priorità ai propri obiettivi prima delle esigenze dell'utente finale.

In breve.

__MACOSX:
strani escrementi di programmatore odorosi che emergono da sotto il tappeto dove sono stati spazzati.

Programmatori e venditori: si prega di tenere le cose aperte. Quando li nascondi, ti rendi stupido e l'utente disinformato.


12
Questa risposta sarebbe migliore se fosse solo una risposta. La proroga estesa su stupidi programmatori e utenti pigri ne toglie.
Kristopher Johnson,

1
@pbernatchez In realtà, se ti fermassi a scoprire come apparivano le cose e come si sono evolute, probabilmente non lasceresti qui i tuoi "escrementi" sgargianti e arroganti. I fork di risorse erano un dettaglio di implementazione (davvero bello!) Pre-Mac OS X e gli utenti li trovavano solo quando si interfacciavano con altri sistemi; dagli anni '90, Apple si è sempre più spostata in un mondo senza risorse, ma continuando a piegarsi all'indietro per mantenere la compatibilità. "Memorizza metadati nello spazio dati dell'utente"? WTF? In che modo devi definire "metadati" e "spazio dati dell'utente" per dirlo? Devi odiare i filesystem!
Hmijail,

3
"Nascondere cose all'utente è male". Amico, devi anche odiare tutti i tipi di interfacce utente e librerie e astrazioni e ... beh, qualsiasi tipo di programmazione e computer più avanzato di un abaco.
Hmijail,

4
Questo non risponde alla domanda. Dopo aver letto questa risposta non ho ancora idea di quali metadati siano contenuti nella cartella _MACOSX o quali siano i fork di risorse. Immagino che le persone stiano votando questo solo perché sono d'accordo con il rant?
Atte Juvonen,

1
Mentre sono d'accordo sul fatto che il tono emotivamente carico non sia utile, sono anche assolutamente d'accordo sul fatto che la creazione di cose nascoste che sono occasionalmente necessarie è una pessima idea, proprio come indicato in questa risposta: gli utenti non (a) non spediranno file nascosti che sono necessario o (b) spedire file nascosti che il destinatario può vedere e che nessuno dei due capisce. Questi file dovrebbero essere visibili oppure i dati dovrebbero essere incorporati nei file in qualche modo contrassegnato come "ignorabile" da altri sistemi operativi. I file e le directory nascosti dovrebbero essere utilizzati principalmente per proteggere gli utenti, non per tenerli al buio.
Mike Williamson,

16

Per rispondere alla tua domanda finale:

come possono gli utenti mac evitare questo errore?

Gli utenti di Mac OS X possono installare un'utilità di archiviazione di terze parti come Keka , quindi dirgli di non utilizzare Resource Forks, quindi impostarlo come compressore predefinito.


Come fare questo con Keka

Di 'a Keka di non usare i fork delle risorse

  1. Apri Keka senza un file (da Launchpad, Spotlight, ecc.)
  2. Premi ⌘ Cmd+ ,per aprire Preferenze
  3. Seleziona la scheda Compressione
    Scheda "Compressione" di Keka, selezionata
  4. Seleziona "Escludi fork di risorse Mac (ad es. .DS_Store)"
    Una casella di controllo con la dicitura "Escludi forchette risorse Mac (es. .DS_Store)"

Imposta Keka come compressore predefinito

  1. Nella stessa finestra Preferenze Keka
  2. Seleziona la scheda Generale
    Scheda "Generale" di Keka, selezionata
  3. Fai clic su "Imposta Keka come compressore / decompressore predefinito" [sic]
    inserisci qui la descrizione dell'immagine

1
Questo potrebbe essere migliorato aggiungendo alcune informazioni sugli ultimi 2 passaggi, "digli di non usare i fork delle risorse, quindi impostalo come compressore predefinito".
Steven C. Howell,

@ stvn66 Fatto! Solo FYI, tuttavia, di solito non rientra nell'ambito di queste domande, motivo per cui all'inizio non l'ho fatto.
Ben Leggiero,

2
Downvoting, scusa. Non sono un fan dell'installazione di software di terze parti per risolvere un problema che può essere risolto con il software predefinito. Come Chris Johnson ha sottolineato sopra, zip -drimuoverà le fork di risorse da un file zip. In effetti, penso che se si utilizza zip in primo luogo, le forcelle delle risorse non vengono aggiunte in primo luogo.
Edward Falk,

1
@EdwardFalk È giusto! Questa risposta aveva lo scopo di risolvere il "Come ottengo che si comporti sempre così?" problema, non il "Come posso farlo comportare in questo modo una volta?" uno.
Ben Leggiero,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.