Gdzie Mac OS X przechowuje informacje o powiązaniach plików?


24

Wiem, że istnieje panel preferencji systemowych do ręcznej modyfikacji skojarzeń plików w systemie Mac OS X Leopard. Jestem jednak ciekawy, gdzie Leopard przechowuje te informacje?

Nie interesują mnie metody ich zmiany. Chcę znać plik konfiguracyjny lub bazę danych (np. Rejestr w systemie Windows), w której przechowywane są te mapowania.


niektórzy, proszę ponownie otaguj to słowami „mac” i „osx” (te tagi są częściej używane)
— Thilo

Dyskutowano na temat meta na ten temat, ale nie mogłem stwierdzić, który tag wygrywa.
— Mehrdad Afshari,

Myślę, że najlepszym sposobem na wyłonienie zwycięzcy jest spojrzenie na liczby. Popularność pokonuje taksonomię w serwisach społecznościowych.
— Thilo,

Zobacz także: superuser.com/questions/17761/… (nieco inny, ale może być również pomocny).
— Jonathan Leffler

Odpowiedzi:


12

Przepraszamy, to pytanie jest stare, ale odpowiedź jest naprawdę błędna.

Jak wspomniano o narzędziach, odpowiedź Douga Harrisa jest tylko częściowo poprawna.

Plik bazy danych usług uruchamiania , w którym przechowywane są wszystkie informacje dotyczące wszystkich znanych aplikacji i typów dokumentów, które mogą obsługiwać, znajduje się w następującej lokalizacji:

Lew:

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

Pantera śnieżna:

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

Lampart:

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

W /private/var/folders/folderze przechowywane są „bezpieczne” pamięci podręczne i foldery tymczasowe dla każdego użytkownika. ** na ścieżce pokazanej powyżej będzie czymś w rodzaju /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/lub inną nieznaną sekwencją znaków, aby zapobiec zgadywaniu.

Zauważ, że nazwa com.apple.LaunchServices-025501.csstoreskłada się z identyfikatora użytkownika (moje jest 501) dołączonego do -025sufiksu, który jest unikalny dla Snow Leopard. (W każdej wersji OS X Apple zazwyczaj zmienia sufiks wyróżniający używany, aby zapobiec problemom ze zgodnością między różnymi wersjami OS X. Zauważysz, że używał Leopard -023). Lion używa -034przyrostka.


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

Ale to są foldery tymczasowe. Nie mogą być tam, gdzie są przechowywane centralnie.
— Melab

1
@Melab: Każda aplikacja w systemie Mac ma Info.plistplik ( developer.apple.com/library/mac/documentation/MacOSX/Conceptual/… ), który opisuje jego możliwości. Uruchom usługi zbiera wszystkie te informacje dynamicznie, aby utworzyć wspomnianą powyżej bazę danych. Jeśli plik bazy danych został usunięty, uruchom Usługi (w szczególności lsregisternarzędzie - ss64.com/osx/lsregister.html ) może je ponownie utworzyć.
— NSGod

Właściwie, właśnie ze ścieżki, wygląda na to, że jest przechowywana obok folderów tymczasowych ( ..oznacza „idź wyżej”).
— SilverWolf - Przywróć Monikę

18

OS X używa systemu „domyślnego” - oto fajny artykuł z dużą ilością przykładów. Pliki są przechowywane w ~ / Library / Preferences, ale najlepiej manipulować poleceniem „defaults” zamiast bezpośrednio edytować listy.

Powiązania plików są przechowywane w domenie com.apple.LaunchServices. Z powyższego linku możesz wyświetlić listę za pomocą tego polecenia:

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

O wiele więcej informacji na temat usług Launch Services można znaleźć w przewodniku Apple Launch Services Programming Guide


15

Odpowiedź @Douga Harrisa jest tylko częściowo poprawna. Domyślny system przechowuje lokalne dodatki lub przesłonięcia skojarzeń plików. Jednak OS X ma pewne domyślne, systemowe powiązania.

Jeśli uruchomisz lsregister -dump, zobaczysz, co wywołuje usługi Launch Services CoreTypesi skojarzenia dostarczone przez znalezione aplikacje.

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

Nie przeskanowałem wyczerpująco wyniku. Mogą być inne źródła wskazane na tym zrzucie, ale duża ich liczba pochodzi /System/Library/CoreServices/CoreTypes.bundle. Tam może być plik zwykłego tekstu lub listy plist, w którym typy są wyliczane. Uważam, że skojarzenia pochodzą ze skanowania zawartości * .app w znanych lokalizacjach aplikacji. Oto, gdzie Launch Services rozumie TextWrangler to edytor wielu typów plików:

--------------------------------------------------------------------------------
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 foundw Mavericks
— Slipp D. Thompson

2
@ SlippD.Thompson przyjrzyj się uważnie następnej linii, tam ścieżka jest podana.
— Dmitry Ginzburg

2

Bułka z masłem! Po prostu nie jest w najbardziej oczywistym miejscu:

  • Kliknij prawym przyciskiem myszy plik, dla którego chcesz zmienić powiązanie, i wybierz „ Uzyskaj informacje ” (lub po prostu wybierz i naciśnij Command+I .
  • Przejdź do „ Otwiera za pomocą ” (może być konieczne kliknięcie strzałki obok niego, aby go rozwinąć) i wybierz inny program z menu rozwijanego.
  • Kliknij przycisk „ Zmień wszystko ... ”, aby zmienić to powiązanie plików dla wszystkich plików o tym samym rozszerzeniu w systemie.

wprowadź opis zdjęcia tutaj

Możesz także wyjść i zainstalować panel wstępny RCDefaultApp, aby zmodyfikować wszystkie powiązania plików w jednym miejscu.


3
Czy czytałeś pytanie? Chodziło o to, gdzie OS X przechowuje informacje, a nie jak zmieniać powiązania.
— Jonik,

1
Tak, ale wiedza na temat ich zmiany również pomaga. To mi pomogło ... @joshhunt: może, jeśli wyraźnie zaznaczyłeś, że plik Get Info znajduje się w Finderze przy wybranym pliku. (Po prostu musiałem cofnąć jedną aplikację pobierającą pliki innej - to pomogło.)
— Jonathan Leffler,

@LauriRanta masz absolutną rację, w rzeczywistości po tym, jak to opublikowałem, chciałem go usunąć, ale nie mogłem go znaleźć!
— ocodo

-3

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.