命令路径解析异常

命令路径解析异常

我在 Mac 上的两个地方安装了终端编辑器“nano”

/usr/bin/nano

/opt/local/bin/nano

安装的版本不同。 中的版本/usr不支持我的配置,~/.nanorc而 中的版本/opt支持。

当我使用命令“nano file”打开文件时,会显示错误,表明使用了中的那个,但是,如果我运行“which nano”,则会显示/usr中的那个。/opt

“which” 不是用来搜索默认路径的吗?为什么调用“nano”不会解析到相同的路径?

我通过将以下行添加到~/.profile

alias nano='/opt/local/bin/nano'

答案1

二进制文件按照其父目录在 PATH 环境变量中出现的顺序进行哈希处理和解析。根据您的需要进行调整。至少就我使用 bash 的经验而言,这是正确的。如果我告诉您的内容不适用于您的 shell,请考虑查看您的 shell 的手册页并查找 COMMAND EXECUTION 和 PATH。

例如,如果我想要foo表示 /home/me/bin/foo 而不是 /usr/local/bin/foo,那么我会将 /home/me/bin/ 放在路径中的 /usr/local/bin 之前,其中方法的左边

PATH=(...):/home/me/bin:(...):/usr/local/bin:(...)

该路径通常在 /etc/profile 或 ~/.profile 中设置。

相关内容