Dove Mac OS X memorizza le informazioni sull'associazione dei file?


24

So che esiste un riquadro delle preferenze di sistema per modificare manualmente le associazioni di file in Mac OS X Leopard. Tuttavia, sono curioso di sapere dove Leopard memorizza effettivamente queste informazioni?

Non mi interessano i metodi per cambiarli. Voglio sapere il file di configurazione o il database (come il registro di Windows) in cui sono archiviati quei mapping.


alcuni per favore ri-taggalo con "mac" e "osx" (quei tag sono più usati)
Thilo,

C'è stata una discussione su meta su questo, ma non sono riuscito a concludere quale tag vince.
Mehrdad Afshari,

Suppongo che il modo migliore per decidere il vincitore sia guardare i numeri. La popolarità batte la tassonomia sui siti dei social network.
Thilo,

Vedi anche: superuser.com/questions/17761/… (leggermente diverso, ma può anche essere utile).
Jonathan Leffler,

Risposte:


12

Siamo spiacenti, questa domanda è vecchia, ma la risposta è davvero sbagliata.

Come menzionato da toolbear, la risposta di Doug Harris è solo parzialmente corretta.

Il file del database di Servizi di avvio , in cui sono archiviate tutte le informazioni per tutte le applicazioni note e i tipi di documenti che possono gestire, si trova nella seguente posizione:

Leone:

/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-034501.csstore

Leopardo delle nevi:

/private/var/folders/**/**/-Caches-/com.apple.LaunchServices-025501.csstore

Leopardo:

/Library/Caches/com.apple.LaunchServices-023501.csstore

La /private/var/folders/cartella è dove sono memorizzate le cache "sicure" e le cartelle temporanee per ciascun utente. Gli ** nel percorso mostrato sopra saranno qualcosa di simile /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/o un'altra oscura sequenza di caratteri per evitare di indovinare.

Si noti che il nome com.apple.LaunchServices-025501.csstoreè composto dall'ID utente (il mio è 501) aggiunto al -025suffisso, che è univoco per Snow Leopard. (In ogni versione di OS X, Apple tende a modificare il suffisso distintivo utilizzato per prevenire problemi di compatibilità tra le diverse versioni di OS X. Noterai che Leopard ha usato -023). Lion sta usando il -034suffisso.


2
El Capitan 10.11.4:$TMPDIR/../0/com.apple.LaunchServices-134$(id -u).csstore
rob mayoff,

Ma quelle sono cartelle temporanee. Quelli non possono essere dove sono archiviati centralmente.
Melab,

1
@Melab: ogni applicazione su un sistema Mac ha un Info.plistfile ( developer.apple.com/library/mac/documentation/MacOSX/Conceptual/… ) che descrive le sue capacità. Launch Services raccoglie tutte queste informazioni in modo dinamico per creare il database sopra menzionato. Se il file di database è stato rimosso, Launch Services (in particolare lo lsregisterstrumento - ss64.com/osx/lsregister.html ) può ricrearlo.
NSGod,

In realtà, proprio dal percorso, sembra che sia memorizzato accanto alle cartelle temporanee ( ..significa "salire di livello").
SilverWolf - Ripristina Monica il

18

OS X utilizza un sistema "predefinito": ecco un bell'articolo con molti esempi. I file sono archiviati in ~ / Library / Preferences, ma è meglio manipolarli con il comando "defaults" piuttosto che modificare direttamente i piani.

Le associazioni di file sono archiviate nel dominio com.apple.LaunchServices. Dal link sopra, puoi vedere l'elenco con questo comando:

defaults read com.apple.LaunchServices | grep -v LSBundleLocator

Ulteriori informazioni sui servizi di lancio specifici sono disponibili nella Guida alla programmazione dei servizi di lancio Apple


15

La risposta di @Doug Harris è solo parzialmente corretta. Il sistema predefinito memorizza le aggiunte locali o le sostituzioni alle associazioni di file. Tuttavia, OS X include alcune associazioni predefinite a livello di sistema.

Se esegui lsregister -dumpvedrai ciò che chiama Launch Services CoreTypese le associazioni fornite dalle applicazioni che trova.

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -dump

Non ho analizzato esaurientemente l'output. Potrebbero esserci altre fonti indicate in quella discarica, ma un gran numero di questi tipi proviene /System/Library/CoreServices/CoreTypes.bundle. Potrebbe esserci un file in chiaro o plist in cui sono elencati i tipi. Le associazioni che ritengo provengano dalla scansione del contenuto di * .app in percorsi di applicazioni conosciute. Ecco dove Launch Services comprende TextWrangler è un editor per numerosi tipi di file:

--------------------------------------------------------------------------------
bundle  id:            10928
    path:          /Applications/TextWrangler.app
    name:          TextWrangler
    identifier:    com.barebones.textwrangler (0x8000008d)
    ...
    library items:
    --------------------------------------------------------
    claim   id:            20216
        name:          TextWrangler text document
        rank:          Default
        roles:         Editor  
        flags:         relative-icon-path  
        icon:          Contents/Resources/TextWranglerTextDoc.icns
        bindings:      .a, .asm, .asp, .bashrc, .c, .c++, .cc, .cfm, .conf, .cp, .cpp, .cshrc, .css, .cxx, .equ, .f, .f77, .for, .ftn, .h, .h++, .hpp, .htm, .html, .inc, .j, .java, .js, .jsp, .log, .m, .mm, .p, .pas, .pch, .pch++, .php, .php3, .pl, .plist, .plx, .pm, .ppu, .r, .rb, .rez, .rhtml, .rss, .s, .sql, .shtm, .shtml, .tcl, .tcshrc, .text, .txt, .wml, .xhtml, .xml, .xsl, .xslt, .yaml, 'TEXT'
    ...

1
FYI -bash: lsregister: command not foundin Mavericks
Slipp D. Thompson,

2
@ SlippD. Thompson guarda attentamente la riga successiva, il percorso è specificato lì.
Dmitry Ginzburg,

2

Vai tranquillo! È solo che non è nel posto più ovvio:

  • Fai clic con il pulsante destro del mouse sul file per il quale desideri modificare l'associazione e seleziona " Ottieni informazioni " (oppure seleziona e premi Command+I .
  • Vai su " Apri con " (potrebbe essere necessario fare clic sulla freccia accanto ad esso per espanderlo) e selezionare un altro programma dalla casella a discesa.
  • Fai clic sul pulsante " Cambia tutto ... " per modificare questa associazione di file per tutti i file della stessa estensione sul tuo sistema.

inserisci qui la descrizione dell'immagine

È inoltre possibile uscire e installare prefpane RCDefaultApp per modificare tutte le associazioni di file in un unico posto.


3
Hai letto la domanda? Si trattava di dove OS X memorizza le informazioni, non di come modificare le associazioni.
Jonik,

1
Sì, ma anche sapere come cambiarli aiuta. Mi è stato d'aiuto per me ... @joshhunt: forse se rendessi esplicito che il materiale Ottieni informazioni è nel Finder con il file selezionato. (Ho dovuto solo annullare un'applicazione afferrando i file di un'altra - questo ha aiutato.)
Jonathan Leffler,

@LauriRanta hai perfettamente ragione, infatti dopo averlo pubblicato, volevo eliminarlo, ma non sono riuscito a trovarlo!
ocodo,

-3

~/Library/Preferences/com.apple.LaunchServices.plist

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.