如何检查Mac系统中是否安装有可打开特定扩展名文件的应用程序?
嘿,针对你提到的Mac上的两个需求,我整理了几种实用的方法,不管是用图形界面还是命令行都能搞定,都是我日常调试和帮同事排查问题时常用的:
一、检查特定文件是否存在可打开的应用程序
方法1:图形界面(GUI)操作
- 找到目标文件,右键点击它,选择「显示简介」(或者直接按
Cmd + I快捷键) - 在弹出的窗口里,定位到「打开方式」板块:
- 如果这里显示了具体的应用程序名称,说明这个文件有对应的打开工具;
- 如果显示「无应用程序」或者需要手动选择,那当前系统里没有能直接打开它的应用。
- 你还可以点击「打开方式」旁边的下拉菜单,选择「其他…」,系统会列出所有能尝试打开该文件的应用,要是列表为空,就确实没合适的程序了。
方法2:命令行工具验证
如果你习惯用终端,这两个命令很实用:
- 测试能否打开文件:直接用
open命令尝试打开目标文件,比如:
如果系统弹出“无法打开”的提示,就说明没有匹配的应用;要是能正常打开,那自然没问题。open /path/to/your/file.ext - 查看文件关联信息:先通过
mdls获取文件的内容类型,再用lsregister查找关联应用:
要是输出里有应用的路径和名称,就说明存在可打开的程序。# 第一步:获取文件的内容类型标识 mdls -name kMDItemContentType /path/to/your/file.ext # 第二步:查找该类型对应的应用(把下面的[内容类型标识]替换成上一步的结果) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep -A 5 "[内容类型标识]"
二、确认特定扩展名是否已安装必要程序
方法1:图形界面排查
- 打开「系统设置」(旧版macOS叫「系统偏好设置」),找到「桌面与 Dock」(旧版在「Finder」选项里)
- 在「文件扩展」(或者「高级」分类下的「文件关联」)选项里,搜索你要检查的扩展名(比如
.pdf、.zip):- 如果能看到对应的应用程序,说明已经安装了支持它的工具;
- 要是搜索结果为空,或者显示「未关联」,那就需要安装对应的程序了。
- 另外,你也可以新建一个空的对应扩展名文件,用「显示简介」的方法查看打开方式,和上面的步骤一致。
方法2:命令行精准查询
终端里用这两个工具能快速查到结果:
- 用duti查询扩展名关联:这个工具专门用来管理文件关联,直接运行:
如果返回应用的名称、路径和包ID,说明已经有对应的程序;要是没有输出或者报错,就没安装支持该扩展名的应用。duti -x .ext # 把.ext换成你要检查的扩展名,比如.txt注:如果你的Mac上没有duti工具,可以通过Homebrew安装:
brew install duti - 用lsregister全局搜索:遍历系统所有注册的应用关联,查找目标扩展名:
输出里如果有应用相关的信息,就说明存在支持该扩展名的程序。/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep -B 2 -A 2 ".ext"
内容的提问来源于stack exchange,提问作者Swifless




