Di mana Mac OS X menyimpan informasi asosiasi file?

24

Saya tahu ada panel preferensi sistem untuk secara manual memodifikasi asosiasi file di Mac OS X Leopard. Namun, saya ingin tahu di mana Leopard sebenarnya menyimpan informasi ini?

Saya tidak tertarik dengan metode untuk mengubahnya. Saya ingin tahu file konfigurasi atau database (seperti registry di Windows) di mana pemetaan tersebut disimpan.

Mehrdad Afshari
sumber
beberapa tolong beri tag ulang ini dengan "mac" dan "osx" (tag-tag itu lebih banyak digunakan)
Thilo
Ada diskusi tentang meta tentang ini, tetapi saya tidak bisa menyimpulkan tag mana yang menang.
Mehrdad Afshari
Saya kira cara terbaik untuk memutuskan pemenang adalah dengan melihat angka-angkanya. Popularitas mengalahkan taksonomi di situs jejaring sosial.
Thilo
Lihat juga: superuser.com/questions/17761/… (sedikit berbeda, tetapi mungkin juga membantu).
Jonathan Leffler

Jawaban:

12

Maaf, pertanyaan ini sudah lama, tetapi jawabannya benar-benar salah.

Seperti yang disebutkan oleh toolbear, jawaban Doug Harris hanya sebagian yang benar.

The Luncurkan Layanan database file, yang mana semua informasi untuk semua aplikasi yang dikenal dan jenis dokumen yang mereka dapat menangani disimpan, terletak di lokasi berikut:

Singa:

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

Macan Tutul Salju:

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

Macan tutul:

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

The /private/var/folders/folder di mana "aman" Cache dan folder Temporary untuk setiap pengguna disimpan. ** pada jalur yang ditunjukkan di atas akan berupa sesuatu /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/, atau urutan karakter yang tidak jelas lainnya untuk mencegah tebakan.

Perhatikan bahwa nama com.apple.LaunchServices-025501.csstoretersebut terdiri dari ID pengguna (milik saya 501) ditambahkan ke -025akhiran, yang unik untuk Snow Leopard. (Di setiap versi OS X, Apple cenderung mengubah sufiks pembeda yang digunakan untuk mencegah masalah kompatibilitas antara versi OS X yang berbeda. Anda akan melihat bahwa Leopard digunakan -023). Lion menggunakan -034suffix.

NSGod
sumber
2
El Capitan 10.11.4:$TMPDIR/../0/com.apple.LaunchServices-134$(id -u).csstore
rob mayoff
Tapi itu adalah folder sementara. Itu tidak mungkin di tempat itu disimpan secara terpusat.
Melab
1
@Melab: Setiap aplikasi pada sistem Mac memiliki Info.plistfile ( developer.apple.com/library/mac/documentation/MacOSX/Conceptual/… ) yang menjelaskan kemampuannya. Launch Services mengumpulkan semua informasi itu secara dinamis untuk membuat database yang disebutkan di atas. Jika file database dihapus Layanan Peluncuran (khususnya lsregisteralat - ss64.com/osx/lsregister.html ) dapat membuatnya kembali.
NSGod
Sebenarnya, hanya dari jalur, sepertinya disimpan di samping folder sementara ( ..berarti "naik tingkat").
SilverWolf - Reinstate Monica
18

OS X menggunakan sistem "default" - inilah artikel yang bagus dengan banyak contoh. File-file disimpan di bawah ~ / Library / Preferences, tetapi yang terbaik adalah memanipulasi dengan perintah "default" daripada mengedit daftar secara langsung.

Asosiasi file disimpan di bawah domain com.apple.LaunchServices. Dari tautan di atas, Anda dapat melihat daftar dengan perintah ini:

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

Jauh lebih banyak informasi tentang Layanan Peluncuran khusus, dapat ditemukan di Panduan Pemrograman Layanan Peluncuran Apple

Doug Harris
sumber
15

@Doug Harris jawaban hanya sebagian benar. Sistem default menyimpan penambahan atau penggantian lokal Anda ke asosiasi file. Namun, OS X hadir dengan beberapa asosiasi standar sistem.

Jika Anda menjalankan, lsregister -dumpAnda akan melihat apa yang disebut Layanan Peluncuran CoreTypesdan asosiasi yang disediakan oleh aplikasi yang ditemukannya.

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

Saya belum secara mendalam memindai output. Mungkin ada sumber lain yang ditunjukkan dalam dump itu, tetapi sejumlah besar jenis ini berasal /System/Library/CoreServices/CoreTypes.bundle. Mungkin ada file plaintext atau plist di sana di mana jenisnya disebutkan. Asosiasi saya percaya berasal dari pemindaian konten * .app di lokasi aplikasi yang dikenal. Di sinilah Layanan Peluncuran memahami TextWrangler adalah editor untuk berbagai jenis 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'
    ...
toolbear74
sumber
1
FYI -bash: lsregister: command not founddi Mavericks
Slipp D. Thompson
2
@ SlippD. Thompson melihat dengan seksama pada baris berikutnya, jalan ditentukan di sana.
Dmitry Ginzburg
2

Peasy mudah! Hanya saja itu bukan di tempat yang paling jelas:

  • Klik kanan pada file yang ingin Anda ubah asosiasi dan pilih " Dapatkan Info " (atau cukup pilih dan tekan Command+I .
  • Pergi ke " Buka Dengan " (Anda mungkin perlu mengklik panah di sebelahnya untuk membentangkannya) dan pilih program lain dari kotak drop down.
  • Klik tombol " Ubah Semua ... " untuk mengubah asosiasi file ini untuk semua file dengan ekstensi yang sama di sistem Anda.

masukkan deskripsi gambar di sini

Anda juga bisa keluar dan menginstal prefapane RCDefaultApp untuk mengubah semua asosiasi file di satu tempat.

Josh Hunt
sumber
3
Apakah Anda membaca pertanyaannya? Itu tentang di mana OS X menyimpan informasi, bukan bagaimana mengubah asosiasi.
Jonik
1
Ya, tetapi mengetahui cara mengubahnya juga membantu. Seperti itu membantu saya ... @joshhunt: mungkin jika Anda membuatnya secara eksplisit bahwa Dapatkan info yang ada di Finder dengan file yang dipilih. (Hanya harus membatalkan satu aplikasi mengambil file yang lain - ini membantu.)
Jonathan Leffler
@LauriRanta Anda memang benar, sebenarnya setelah saya memposting itu, saya ingin menghapusnya, tetapi saya tidak dapat menemukannya!
ocodo
-3

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

Nate
sumber