#unixtips
### 困惑:
> $ which claude /c/Users/David.Wei/.local/bin/claude
~/.local/bin
$ claude --version
bash: /c/Users/David.Wei/scoop/apps/nodejs/current/bin/claude: No such file or directory
### 解惑
现象:
但执行
这在 bash 里通常只有一个原因:hash cache。
bash 会缓存命令路径。
之前某次执行时
后来这个文件被删掉了(node/npm 升级),但 bash 仍然缓存旧路径。
因此:
显示的是 当前 PATH 解析结果
但 bash 执行的仍然是 缓存路径
清缓存:
或只清这个命令:
再执行:
就会走:
验证缓存:
可以看到 bash 当前缓存的命令路径。
验证实际执行路径:
### 困惑:
> $ which claude /c/Users/David.Wei/.local/bin/claude
~/.local/bin
$ claude --version
bash: /c/Users/David.Wei/scoop/apps/nodejs/current/bin/claude: No such file or directory
### 解惑
现象:
which claude
/c/Users/David.Wei/.local/bin/claude
但执行
claude 时 bash 实际调用的是:/c/Users/David.Wei/scoop/apps/nodejs/current/bin/claude
这在 bash 里通常只有一个原因:hash cache。
bash 会缓存命令路径。
之前某次执行时
claude 在:/c/Users/David.Wei/scoop/apps/nodejs/current/bin/claude
后来这个文件被删掉了(node/npm 升级),但 bash 仍然缓存旧路径。
因此:
which
显示的是 当前 PATH 解析结果
但 bash 执行的仍然是 缓存路径
清缓存:
hash -r
或只清这个命令:
hash -d claude
再执行:
claude --version
就会走:
~/.local/bin/claude
验证缓存:
hash
可以看到 bash 当前缓存的命令路径。
验证实际执行路径:
type -a claude