mac终端可通过duti或defaults命令精准修改文件默认打开方式:一、用duti -s绑定扩展名与应用(需先brew install duti);二、用defaults write直写launchservices数据库;三、用lsregister -kill重置关联。

Mac终端本身不直接管理文件打开方式,但可通过终端命令精准修改系统级文件关联规则,解决图形界面失效、应用未出现在列表、或需批量配置几十种格式的问题。
用duti命令绑定扩展名与应用
先确认已安装duti:打开终端,运行 brew install duti。若提示command not found,请先安装Homebrew。
执行绑定命令,例如把所有 .md 文件强制交给 Typora 打开:duti -s abnerworks.Typora .md public.item。
注意:Bundle ID必须准确,可用 osascript -e 'id of app "Typora"' 查询;【public.item是通用UTI,对.md更稳妥;若用public.plain-text可能误绑其他文本文件】。
执行后立即生效,无需重启,但Finder图标缓存可能延迟刷新——运行 killall Finder 强制更新界面。
用defaults write直写LaunchServices数据库
此方法绕过duti依赖,适合无Homebrew环境或需绑定UTI(如public.jpeg)的场景。
第一步:查目标应用Bundle ID,例如VS Code:osascript -e 'id of app "Code"' → 返回 com.microsoft.VSCode。
第二步:写入映射关系,将纯文本默认设为TextEdit:defaults write com.apple.LaunchServices/com.apple.launchservices.secure LSHandlers -array-add '{LSHandlerContentType=public.plain-text;LSHandlerRoleAll=com.apple.TextEdit;}'。
第三步:强制重载配置:killall Finder。若图标未变,再补一句 lsregister -kill -r -domain local -domain system -domain user 清空注册表缓存。
快速重置某类文件的关联
方法一:用duti清除指定绑定:duti -x md(清空所有.md关联)→ 再重新绑定。
方法二:终端一键重置全部LaunchServices记录(慎用):lsregister -kill -r -domain local -domain system -domain user → killall Finder。
【执行后所有文件类型默认应用将恢复系统初始状态,包括PDF、图片、文档等,务必提前记下关键绑定】。











