Skip to content

VS Code "permission denied, unlink 'usr/local/bin/code'" 错误解决方案

问题描述

许多 macOS 用户在尝试安装 VS Code 的 code 命令行工具时遇到权限错误。当通过 VS Code 的命令面板执行 Shell Command: Install 'code' command 时,系统提示:

EACCES: permission denied, unlink 'usr/local/bin/code'

即使在安装成功后,code 命令也可能在重启终端或一段时间后失效,显示:

zsh: command not found: code

根本原因

此问题通常是由于 /usr/local/bin 目录的权限设置不正确导致的。在 macOS 上,该目录可能被其他用户或系统进程锁定,阻止了 VS Code 正确创建或更新符号链接。

解决方案

方法一:修改目录权限(推荐)

打开终端,执行以下命令修改 /usr/local/bin 目录的所有权:

bash
sudo chown -R $USER /usr/local/bin

然后重新安装 code 命令:

  1. 在 VS Code 中按 Cmd + Shift + P 打开命令面板
  2. 搜索并选择 Shell Command: Uninstall 'code' command
  3. 再次打开命令面板,搜索并选择 Shell Command: Install 'code' command

TIP

使用 $USER 变量可以自动获取当前用户名,避免手动输入错误

方法二:重新安装 VS Code

如果权限修改无效,可以尝试完全重新安装:

  1. 卸载 VS Code
  2. 删除所有相关文件(包括 /usr/local/bin/code
  3. 重新下载并安装 VS Code
  4. 通过命令面板安装 code 命令

方法三:手动添加 PATH 变量

如果上述方法都不起作用,可以手动将 VS Code 添加到 PATH 中:

对于 bash 用户(~/.bash_profile):

bash
export PATH="/Applications/Visual Studio Code.app/Contents/Resources/app/bin:$PATH"

对于 zsh 用户(~/.zshrc):

bash
export PATH="/usr/local/bin/:$PATH"

或者使用函数方式:

bash
code () { VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* ;}

注意

手动修改 PATH 可能需要重启终端或执行 source ~/.zshrc(或 source ~/.bash_profile)才能使更改生效

验证解决方案

安装完成后,在终端中执行以下命令测试是否成功:

bash
code .

如果正确安装,此命令会在当前目录打开 VS Code。

避免问题复发的建议

  1. 定期检查权限:如果问题再次出现,可能需要重新执行权限修复命令
  2. 更新注意事项:VS Code 或 macOS 系统更新后可能会重置某些权限设置
  3. 备份配置:定期备份你的 shell 配置文件(.zshrc、.bash_profile 等)

总结

VS Code 的 "permission denied" 错误通常通过修复 /usr/local/bin 目录的权限即可解决。大多数情况下,只需执行:

bash
sudo chown -R $USER /usr/local/bin

然后重新安装 code 命令即可恢复正常。如果问题仍然存在,可以考虑重新安装 VS Code 或手动配置 PATH 变量。

兼容性说明

这些解决方案适用于 Intel 和 M1/M2 芯片的 Mac 设备,测试环境包括 macOS Catalina 及更新版本