最直接方法是用活动监视器:打开后勾选“路径”列,查找目标进程即可看到其真实可执行路径,如/Applications/Visual Studio Code.app/Contents/MacOS/Electron;若为空则需终端命令辅助。

当你在Mac上运行某个程序,想立刻知道它此刻加载的是哪个可执行文件,比如怀疑启动了错误版本、调试时需要确认二进制来源、或排查命令行工具是否被别名/函数劫持——这时不能只看“应用程序”文件夹,必须定位正在运行的进程真实路径。
通过活动监视器查看运行中程序的完整路径
这是最直观、无需记忆命令、适合所有用户的方法,尤其适用于图形界面应用(如Chrome、VS Code)和后台服务。
1、打开“启动台”→搜索“活动监视器”并启动;
2、在顶部菜单栏点击【视图】→【列】→勾选【路径】;
3、在进程列表中找到目标程序(可使用右上角搜索框输入名称快速筛选);
4、直接查看“路径”列对应行的内容,例如:/Applications/Visual Studio Code.app/Contents/MacOS/Electron;
注意:若该列显示为空或“—”,说明系统未向该进程暴露路径信息(常见于沙盒化App或某些守护进程),此时需换用终端方法。
用终端命令查运行中进程的真实可执行路径
适用于命令行启动的程序、后台服务、或活动监视器无法显示路径的情况。结果精准,但需区分进程名与实际路径。
方法一:用 ps + grep 定位进程并提取路径
1、打开终端;
2、输入命令:ps aux | grep -v grep | grep [关键词],将[关键词]替换为进程名的一部分(如WeChat、node、python3);
3、在返回结果中,找到COMMAND列最左侧的完整路径,例如:/usr/local/bin/node;
这一步必须看COMMAND列最开头的部分——它不是参数,而是内核实际加载的可执行文件绝对路径;漏看后面参数会误判。
方法二:用 lsof 查看进程打开的文件,锁定主二进制
1、先用pgrep -f [关键词]获取进程PID(例如pgrep -f "python.*server.py");
2、再执行:lsof -p [PID] | grep txt | head -1;
3、输出形如:Python 12345 user txt REG 1,2 12345678 /opt/homebrew/bin/python3.12,第三列“txt”表示该进程主映像,路径即末尾部分。
针对GUI应用:从访达中反向追踪运行实例
当你已看到某个应用窗口,但不确定它是否来自/Applications还是~/Applications,甚至怀疑是双击了.app包内的某个子程序,可用此法快速验证。
第一步:在Dock中右键点击该应用图标 → 选择【选项】→【在访达中显示】;
第二步:访达将跳转至该.app所在目录,此时不要点开它;
第三步:按住Command键,将该.app图标拖入终端窗口 → 松手后终端自动填充带引号的路径,如"/Applications/Slack.app";
第四步:在此路径后追加/Contents/MacOS/,再列出内容:ls -l "/Applications/Slack.app/Contents/MacOS/";
你看到的可执行文件名(如Slack)就是实际运行的二进制,其完整路径为/Applications/Slack.app/Contents/MacOS/Slack。

















