Mac OS X จัดเก็บข้อมูลการเชื่อมโยงไฟล์อยู่ที่ไหน


20

ฉันรู้ว่ามีบานหน้าต่างการตั้งค่าระบบเพื่อแก้ไขการเชื่อมโยงไฟล์ใน Mac OS X Leopard ด้วยตนเอง อย่างไรก็ตามฉันอยากรู้ว่า Leopard เก็บข้อมูลเหล่านี้ไว้ที่ไหน

ฉันไม่สนใจวิธีการเปลี่ยน ฉันต้องการทราบไฟล์กำหนดค่าหรือฐานข้อมูล (เช่นรีจิสตรีใน Windows) ที่จัดเก็บการแมปเหล่านั้น


บางคนโปรดติดแท็กใหม่ด้วย "mac" และ "osx" (แท็กเหล่านี้ใช้กันอย่างแพร่หลาย)
Thilo

มีการอภิปรายเกี่ยวกับเมตาของสิ่งนี้ แต่ฉันไม่สามารถสรุปได้ว่าแท็กใดจะชนะ
Mehrdad Afshari

ฉันคิดว่าวิธีที่ดีที่สุดในการตัดสินผู้ชนะคือดูตัวเลข ความนิยมเต้นอนุกรมวิธานบนเว็บไซต์เครือข่ายสังคม
Thilo

ดูสิ่งนี้ด้วย: superuser.com/questions/17761/... (แตกต่างกันเล็กน้อย แต่อาจมีประโยชน์ด้วย)
Jonathan Leffler

คำตอบ:


9

ขออภัยคำถามนี้เก่า แต่คำตอบนั้นผิดจริงๆ

ตามที่กล่าวถึงเครื่องมือคำตอบของดั๊กแฮร์ริสนั้นถูกต้องเพียงบางส่วนเท่านั้น

เปิดฐานข้อมูลบริการ ไฟล์ซึ่งเป็นที่ ทั้งหมด ของข้อมูลสำหรับ ทั้งหมด แอปพลิเคชันที่รู้จักและประเภทของเอกสารที่สามารถจัดการได้จะถูกจัดเก็บอยู่ในตำแหน่งต่อไปนี้:

สิงโต:

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

เสือดาวหิมะ:

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

เสือดาว:

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

/private/var/folders/ โฟลเดอร์เป็นที่เก็บแคช "ปลอดภัย" และโฟลเดอร์ชั่วคราวสำหรับผู้ใช้แต่ละราย ** ** ในเส้นทางที่แสดงด้านบนจะเป็นสิ่งที่ต้องการ /dl/dlXWtS5WH9SNboPxxrDIyE+++TI/หรือลำดับอักขระอื่นที่ไม่ชัดเจนเพื่อป้องกันการเดา

สังเกตว่าชื่อ com.apple.LaunchServices-025501.csstore ประกอบด้วย ID ผู้ใช้ (ฉันคือ 501 ) ผนวกเข้ากับ -025 คำต่อท้ายซึ่งเป็นเอกลักษณ์ของ Snow Leopard (ในแต่ละเวอร์ชั่นของ OS X, Apple มีแนวโน้มที่จะเปลี่ยนคำต่อท้ายที่ใช้เพื่อป้องกันปัญหาความเข้ากันได้ระหว่าง OS X เวอร์ชั่นต่าง ๆ คุณจะสังเกตเห็นว่า Leopard ใช้ -023 ) Lion กำลังใช้ -034 วิภัตติ


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

แต่นั่นเป็นโฟลเดอร์ชั่วคราว สิ่งเหล่านี้ไม่สามารถอยู่ในที่ที่ถูกจัดเก็บไว้ตรงกลาง
Melab

@Melab: แต่ละแอปพลิเคชันบนระบบ Mac มี Info.plist ไฟล์ ( developer.apple.com/library/mac/documentation/MacOSX/Conceptual/... ) ซึ่งอธิบายความสามารถของมัน Launch Services รวบรวมข้อมูลทั้งหมดนั้นแบบไดนามิกเพื่อสร้างฐานข้อมูลดังกล่าวข้างต้น หากไฟล์ฐานข้อมูลถูกลบเปิดบริการ (โดยเฉพาะ lsregister เครื่องมือ -- ss64.com/osx/lsregister.html ) สามารถสร้างใหม่ได้
NSGod

ที่จริงแล้วจากเส้นทางมันดูเหมือนว่ามันถูกเก็บไว้ คู่ขนาน โฟลเดอร์ชั่วคราว ( .. หมายถึง "ขึ้นระดับ")
SilverWolf

17

OS X ใช้ระบบ "ค่าเริ่มต้น" - นี่คือ บทความที่ดี มีตัวอย่างมากมาย ไฟล์จะถูกเก็บไว้ภายใต้ ~ / Library / Preferences แต่ควรจัดการกับคำสั่ง "ค่าเริ่มต้น" แทนที่จะแก้ไข plists โดยตรง

การเชื่อมโยงไฟล์ถูกจัดเก็บภายใต้โดเมน com.apple.LaunchServices จากลิงค์ด้านบนคุณสามารถดูรายการด้วยคำสั่งนี้:

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

ข้อมูลเพิ่มเติมเกี่ยวกับ Launch Services โดยเฉพาะสามารถพบได้ใน Apple เปิดตัวคู่มือการเขียนโปรแกรมบริการ


12

@Doug Harris 'คำตอบถูกต้องเพียงบางส่วนเท่านั้น ระบบค่าเริ่มต้นจะจัดเก็บการเพิ่มหรือลบล้างการเชื่อมโยงไฟล์ของคุณ อย่างไรก็ตาม OS X มาพร้อมกับการเชื่อมโยงของระบบที่เป็นค่าเริ่มต้น

ถ้าคุณวิ่ง lsregister -dump คุณจะเห็นสิ่งที่เรียกใช้บริการเปิด CoreTypes และความสัมพันธ์ที่แอปพลิเคชันจัดหาให้

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

ฉันไม่ได้สแกนผลลัพธ์อย่างละเอียดถี่ถ้วน อาจมีแหล่งข้อมูลอื่นที่ระบุในการถ่ายโอนข้อมูลนั้น แต่มีประเภทเหล่านี้จำนวนมากมาจาก /System/Library/CoreServices/CoreTypes.bundle. อาจมีข้อความธรรมดาหรือไฟล์ plist ซึ่งมีประเภทที่ระบุ ความสัมพันธ์ที่ฉันเชื่อว่ามาจากการสแกนเนื้อหาของ * .app ในตำแหน่งแอปพลิเคชันที่รู้จัก นี่คือสิ่งที่ Launch Services เข้าใจว่า TextWrangler เป็นเครื่องมือแก้ไขไฟล์หลายประเภท:

--------------------------------------------------------------------------------
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 found ใน Mavericks
Slipp D. Thompson

1
@ SlippDThpson ดูที่บรรทัดถัดไปอย่างระมัดระวังโดยมีการระบุเส้นทาง
Dmitry Ginzburg

3

peasy ง่าย ๆ ! เป็นเพียงว่ามันไม่ได้อยู่ในสถานที่ที่ชัดเจนที่สุด:

  • คลิกขวาที่ไฟล์ที่คุณต้องการเปลี่ยนการเชื่อมโยงและเลือก " รับข้อมูล "(หรือเพียงแค่เลือกและกด คำสั่ง + ผม .
  • ลงไปที่ " เปิดด้วย "(คุณอาจต้องคลิกลูกศรที่อยู่ติดกับมันเพื่อขยาย) และเลือกโปรแกรมอื่นจากกล่องดรอปดาวน์
  • คลิก " เปลี่ยนทั้งหมด ... ปุ่ม "เพื่อเปลี่ยนการเชื่อมโยงไฟล์นี้สำหรับไฟล์ทั้งหมดของนามสกุลเดียวกันในระบบของคุณ

enter image description here

คุณสามารถออกไปข้างนอกและติดตั้งได้ RCDefaultApp prefpane เพื่อแก้ไขการเชื่อมโยงไฟล์ทั้งหมดในที่เดียว


3
คุณอ่านคำถามหรือไม่ มันเกี่ยวกับที่ที่ OS X เก็บข้อมูลไม่ใช่วิธีการเปลี่ยนการเชื่อมโยง
Jonik

1
ใช่ แต่การรู้วิธีเปลี่ยนมันยังช่วยได้ เช่นเดียวกับที่ช่วยฉัน ... @joshhunt: บางทีถ้าคุณทำอย่างชัดเจนว่าสิ่งที่ได้รับข้อมูลอยู่ใน Finder ด้วยไฟล์ที่เลือก (เพียงแค่ต้องเลิกทำการแอปพลิเคชั่นหนึ่งคว้าไฟล์ของผู้อื่น - สิ่งนี้ช่วยได้)
Jonathan Leffler

@ LauriRanta คุณพูดถูกจริงๆอันที่จริงหลังจากที่ฉันโพสต์แล้วฉันต้องการลบมัน แต่ฉันหามันไม่เจอ!
ocodo

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.