Wo speichert Mac OS X die Informationen zur Dateizuordnung?

24

Ich weiß, dass es einen Systemeinstellungsbereich gibt, in dem Sie die Dateizuordnungen in Mac OS X Leopard manuell ändern können. Ich bin jedoch gespannt, wo Leopard diese Informationen tatsächlich speichert.

Ich bin nicht an Methoden interessiert, um sie zu ändern. Ich möchte die Konfigurationsdatei oder Datenbank (wie die Registrierung in Windows) kennen, in der diese Zuordnungen gespeichert sind.

Mehrdad Afshari
quelle
Einige bitte erneut mit "mac" und "osx" taggen (diese Tags werden häufiger verwendet)
Thilo
Es gab eine Diskussion über Meta, aber ich konnte nicht schließen, welches Tag gewinnt.
Mehrdad Afshari
Ich nehme an, der beste Weg, den Gewinner zu bestimmen, besteht darin, sich die Zahlen anzusehen. Popularität schlägt Taxonomie auf Websites sozialer Netzwerke.
Thilo
Siehe auch: superuser.com/questions/17761/… (etwas anders, kann aber auch hilfreich sein).
Jonathan Leffler

Antworten:

12

Entschuldigung, diese Frage ist alt, aber die Antwort ist wirklich falsch.

Wie bereits erwähnt, ist die Antwort von Doug Harris nur teilweise richtig.

Die Launch Services-Datenbankdatei , in der alle Informationen für alle bekannten Anwendungen und die Arten von Dokumenten gespeichert sind, die sie verarbeiten können, befindet sich an folgendem Speicherort:

Löwe:

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

Schneeleopard:

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

Leopard:

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

In diesem /private/var/folders/Ordner werden die "sicheren" Caches und temporären Ordner für jeden Benutzer gespeichert. Die ** in dem oben gezeigten Pfad sind so etwas wie /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/oder eine andere undurchsichtige Zeichenfolge, um das Erraten zu verhindern.

Beachten Sie, dass der Name com.apple.LaunchServices-025501.csstoreaus der Benutzer-ID besteht (meine ist 501), die an das -025Suffix angehängt ist , das für Snow Leopard eindeutig ist. (In jeder Version von OS X tendiert Apple dazu, das Erkennungssuffix zu ändern, um Kompatibilitätsprobleme zwischen verschiedenen Versionen von OS X zu vermeiden. Sie werden feststellen, dass Leopard verwendet wird. -023) Lion verwendet das -034Suffix.

NSGod
quelle
2
El Capitan 10.11.4:$TMPDIR/../0/com.apple.LaunchServices-134$(id -u).csstore
Rob Mayoff
Aber das sind temporäre Ordner. Diese können nicht dort sein, wo sie zentral gespeichert sind.
Melab
1
@ Melab: Jede Anwendung auf einem Mac-System verfügt über eine Info.plistDatei ( developer.apple.com/library/mac/documentation/MacOSX/Conceptual/… ), in der ihre Funktionen beschrieben werden. Launch Services sammelt alle diese Informationen dynamisch, um die oben genannte Datenbank zu erstellen. Wenn die Datenbankdatei entfernt wurde, kann sie von Launch Services (insbesondere vom lsregisterTool ss64.com/osx/lsregister.html ) neu erstellt werden.
NSGod
Tatsächlich sieht es so aus, als ob der Pfad neben den temporären Ordnern gespeichert ist ( ..bedeutet "eine Ebene höher").
SilverWolf - Setzen Sie Monica
18

OS X verwendet ein "Standard" -System - hier ist ein schöner Artikel mit vielen Beispielen. Die Dateien werden unter ~ / Library / Preferences gespeichert, es ist jedoch am besten, sie mit dem Befehl "defaults" zu bearbeiten, anstatt die Plists direkt zu bearbeiten.

Dateizuordnungen werden unter der Domäne com.apple.LaunchServices gespeichert. Über den obigen Link können Sie die Liste mit diesem Befehl sehen:

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

Weitere Informationen zu Launch Services finden Sie im Launch Services-Programmierhandbuch von Apple

Doug Harris
quelle
15

@Doug Harris 'Antwort ist nur teilweise richtig. Das Standardsystem speichert Ihre lokalen Ergänzungen oder Überschreibungen der Dateizuordnungen. OS X wird jedoch mit einigen systemweiten Standardzuordnungen ausgeliefert.

Wenn Sie ausführen lsregister -dump, werden die Aufrufe von Launch Services CoreTypesund die Zuordnungen angezeigt, die von den gefundenen Anwendungen bereitgestellt werden.

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

Ich habe die Ausgabe nicht vollständig gescannt. In diesem Dump sind möglicherweise andere Quellen angegeben, aber eine große Anzahl dieser Typen stammt von /System/Library/CoreServices/CoreTypes.bundle. Möglicherweise befindet sich dort eine Klartext- oder Plist-Datei, in der die Typen aufgelistet sind. Die Verknüpfungen stammen meines Erachtens aus dem Scannen des Inhalts von * .app an bekannten Anwendungsorten. Hier erfahren Sie, wie Launch Services TextWrangler als Editor für zahlreiche Dateitypen einsetzt:

--------------------------------------------------------------------------------
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'
    ...
toolbear74
quelle
1
Zur Info -bash: lsregister: command not foundin Mavericks
Slipp D. Thompson
2
@ SlippD.Thompson schau dir die nächste Zeile genau an, der Pfad ist dort angegeben.
Dmitry Ginzburg
2

Kinderleicht! Es ist nur so, dass es nicht am offensichtlichsten Ort ist:

  • Klicken Sie mit der rechten Maustaste auf die Datei, für die Sie die Zuordnung ändern möchten, und wählen Sie " Get Info " (oder wählen Sie einfach und drücken Sie Command+I .
  • Gehen Sie zu " Öffnet mit " (möglicherweise müssen Sie auf den Pfeil neben dem Symbol klicken, um es zu erweitern) und wählen Sie ein anderes Programm aus dem Dropdown-Feld aus.
  • Klicken Sie auf die Schaltfläche " Alle ändern ... ", um diese Dateizuordnung für alle Dateien mit derselben Erweiterung auf Ihrem System zu ändern.

Bildbeschreibung hier eingeben

Sie können auch das RCDefaultApp- Prefpane installieren , um alle Dateizuordnungen an einem Ort zu ändern.

Josh Hunt
quelle
3
Hast du die Frage gelesen? Es ging darum, wo OS X die Informationen speichert, nicht darum, wie die Assoziationen geändert werden.
Jonik
1
Ja, aber zu wissen, wie man sie ändert, hilft auch. Wie es mir geholfen hat ... @joshhunt: Vielleicht, wenn Sie explizit angegeben haben, dass sich das Get Info-Zeug mit der ausgewählten Datei im Finder befindet. (Musste nur eine Anwendung rückgängig machen, um die Dateien einer anderen zu holen - das hat geholfen.)
Jonathan Leffler
@LauriRanta du hast absolut recht, nachdem ich das gepostet habe, wollte ich es löschen, aber ich konnte es nicht finden!
ocodo
-3

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

Nate
quelle