macOS系统如何查询指定文件对应的全部关联应用
macOS 查询文件全部关联打开应用的实现方案
AppleScript 实现方案
直接运行以下脚本即可拿到和Finder「打开方式」列表完全一致的关联应用结果,可根据需要调整返回应用路径或应用名称:
-- 替换为目标文件的实际路径 set targetFile to POSIX file "/Users/vk/Pictures/DSCF3320.jpg" as alias tell application "System Events" -- 获取文件的统一类型标识符UTI set fileUTI to type identifier of targetFile -- 查询所有支持该UTI的关联应用 set associatedApps to application files where type identifier contains fileUTI end tell -- 返回所有关联应用的路径 set appPaths to {} repeat with app in associatedApps set end of appPaths to POSIX path of app end repeat return appPaths
Shell 命令实现方案
适合终端执行或者集成到Shell脚本中使用:
- 第一步:获取目标文件的UTI
执行命令:mdls -name kMDItemContentType -raw /path/to/your/file
运行后会返回类似public.jpeg的UTI字符串。 - 第二步:查询该UTI对应的所有关联应用
执行命令,将下方的public.jpeg替换为第一步获取到的UTI即可:
如果需要直接返回应用名称,在命令末尾追加/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep -B2 -A2 "public.jpeg" | grep "path:" | awk '{print $2}'| xargs basename即可。
内容的提问来源于stack exchange,提问作者HiFile.app - best file manager
相关产品推荐
相关产品推荐

