Launch Services รับผิดชอบการเชื่อมโยงไฟล์เริ่มต้น
สมมติว่าฉันต้องการเปลี่ยนไฟล์ข้อความทั้งหมดเพื่อเปิดใน Sublime Text 2
ก่อนอื่นฉันต้องการ kMDItemCFBundleIdentifier สำหรับ Sublime Text 2 ฉันสามารถใช้mdlsเพื่อรับข้อมูลนี้:
> mdls /Applications/Sublime\ Text\ 2.app
_kTimeMachineIsCreationMarker = 1
_kTimeMachineNewestSnapshot = 4001-01-01 00:00:00 +0000
_kTimeMachineOldestSnapshot = 2012-02-22 03:49:19 +0000
kMDItemCFBundleIdentifier = "com.sublimetext.2"
....snip....
ฉันสามารถหาค่าประเภทเนื้อหาสำหรับไฟล์ข้อความโดยตรวจสอบหนึ่งในนั้นด้วยmdls :
> mdls test.txt
kMDItemContentCreationDate = 2012-03-25 04:18:50 +0000
kMDItemContentModificationDate = 2012-03-25 04:18:50 +0000
kMDItemContentType = "public.plain-text"
kMDItemContentTypeTree = (
"public.plain-text",
"public.text",
"public.data",
"public.item",
"public.content"
)
kMDItemDateAdded = 2012-03-25 04:18:50 +0000
kMDItemDisplayName = "test.txt"
kMDItemFSContentChangeDate = 2012-03-25 04:18:50 +0000
kMDItemFSCreationDate = 2012-03-25 04:18:50 +0000
kMDItemFSCreatorCode = ""
kMDItemFSFinderFlags = 0
kMDItemFSHasCustomIcon = 0
kMDItemFSInvisible = 0
kMDItemFSIsExtensionHidden = 0
kMDItemFSIsStationery = 0
kMDItemFSLabel = 0
kMDItemFSName = "test.txt"
kMDItemFSNodeCount = 975
kMDItemFSOwnerGroupID = 20
kMDItemFSOwnerUserID = 501
kMDItemFSSize = 975
kMDItemFSTypeCode = ""
kMDItemKind = "Plain Text"
kMDItemLogicalSize = 975
kMDItemPhysicalSize = 4096
ในกรณีนี้ฉันจะเปลี่ยนแอปพลิเคชันเริ่มต้นสำหรับทุกpublic.plain-text
ประเภท
เมื่อต้องการทำสิ่งนี้ฉันพิมพ์:
defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentType = \"public.plain-text\"; LSHandlerRoleAll = \"com.sublimetext.2\"; }'
หากฉันต้องการให้การเปลี่ยนแปลงมีผลฉันจะต้องเริ่มต้น Launch Services ใหม่ดังนี้:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
และเพื่อให้เครดิตที่เครดิตครบกำหนดฉันได้เรียนรู้เกี่ยวกับวิธีการนี้จากคำถามและคำตอบ stackoverflow.com นี้: /programming/9172226/how-to-set-default-application-for-specific-file -types ในแม็-os-x
checking which SDK to use... configure: error: darwin12.0.0 is not a supported system
10.8.x: