macOS终端无法一键导出所有已安装应用的绝对完整清单,因应用来源多样且部分未被Spotlight索引或非标准.app格式;但可通过mdfind、ls、brew list --cask、pkgutil、mas及系统报告等互补命令覆盖绝大多数情况,再合并去重生成实用清单。
macos 终端无法一键导出“所有已安装应用”的绝对完整清单,因为应用来源多样(系统目录、用户目录、app store、homebrew cask、pkg 安装器等),且部分应用不被 spotlight 索引或未注册为标准 .app 包。但你可以用几条互补命令覆盖绝大多数情况,组合导出一份实用、可读、带路径或名称的批量清单。
用 Spotlight 扫描所有被索引的图形应用(最常用)
这条命令基于 macOS 的 Spotlight 数据库,能跨路径找到绝大多数 GUI 应用(包括 /Applications、~/Applications、甚至某些隐藏位置的 .app):
- 只输出精简名称(去重 + 排序)并保存到桌面:
mdfind "kMDItemKind == 'Application'" | sed 's/\.app.*$/.app/' | sort -u > ~/Desktop/app_names.txt - 如需带版本号和完整路径,方便排查或脚本处理:
mdfind "kMDItemKind == 'Application'" | xargs -I {} mdls -name kMDItemDisplayName -name kMDItemVersion -name kMDItemPath {} 2>/dev/null | sed '/^kMDItem/d' | paste -d" " - - - | sed 's/^[[:space:]]*//; s/[[:space:]]*$//' | sort -u > ~/Desktop/app_details.txt
注意:命令行工具(如 node、curl)、后台服务、老旧非沙盒应用通常不会出现在此结果中。
直接列出标准安装目录下的应用(最直观)
不依赖索引,适合快速确认主安装区内容,结果清晰可靠:
- 导出系统级应用(需管理员权限查看部分系统 app,但普通用户可读):
ls /Applications | grep "\.app$" > ~/Desktop/system_apps.txt - 导出当前用户专属应用:
ls ~/Applications 2>/dev/null | grep "\.app$" > ~/Desktop/user_apps.txt - 合并两者(跳过权限错误提示):
ls /Applications ~/Applications 2>/dev/null | grep "\.app$" | sort -u > ~/Desktop/standard_apps.txt
该方式漏掉 App Store 后台安装、pkg 安装的非 .app 工具(如 MySQL CLI、JMeter),但路径明确、无误判。
利用 macOS 原生能力实现本地语音识别与合成。通过 yap (Apple Speech.framework) 进行语音转文字,通过 say + ffmpeg 进行文字转语音。完全离线,无需 API 密钥。具备音质检测与智能选声功能。
补全 Homebrew Cask 和 pkg 安装的应用
这两类常不在标准目录,也不一定被 Spotlight 收录,需单独提取:
- Homebrew Cask 安装的 GUI 应用:
brew list --cask 2>/dev/null | sort > ~/Desktop/brew_casks.txt - 通过 pkg 安装的软件包(含命令行工具和部分 GUI):
pkgutil --pkgs | grep -v "com.apple." | sort > ~/Desktop/installed_pkgs.txt - 若还用了 Mac App Store(mas),先确保已登录:
mas account,再运行:mas list 2>/dev/null | awk -F' - ' '{print $1}' | sort > ~/Desktop/mas_apps.txt
用系统报告生成权威参考清单(无需终端)
这是 macOS 官方提供的最完整、带来源与版本信息的视图,虽非纯终端操作,但可作为校验和补充:
- 打开「关于本机」→「系统报告」→ 左侧「软件」→「应用程序」
- 右侧列表支持全选(
Cmd+A)、复制(Cmd+C),粘贴到文本编辑器后另存为system_report_apps.txt - 该清单包含“获得方式”(如 App Store、Installer、Unknown)、“最近使用时间”,对溯源和审计很有价值
不复杂但容易忽略——真正完整的清单,是把上述几类结果手动或用 cat 合并去重,例如:cat ~/Desktop/app_names.txt ~/Desktop/standard_apps.txt ~/Desktop/brew_casks.txt | sort -u > ~/Desktop/full_app_list.txt

















