在 bash 中正确设置路径后找不到命令

在 bash 中正确设置路径后找不到命令

我已经像以前一样正确设置了路径,但收到命令未找到错误。

$echo $PATH
/usr/local/bin/node

因此,我必须在每次运行时使用完整路径来运行节点,并且在不使用 sudo 的情况下运行时,它总是给出“权限被拒绝”的错误:

$sudo /usr/local/bin/node ***

有谁知道问题是什么?

答案1

缩短您的$PATH/usr/local/bin/node/usr/local/bin

$PATH变量用于存储包含可执行文件的目录名称;它是不是用于存储可执行文件的任何名称之内那些目录。该file命令将显示差异:

file /usr/local/bin /usr/local/bin/node

sudo问题可能意味着当前用户缺乏运行权限node。检查权限和所有权:

stat --printf="%a %G:%U\n" /usr/local/bin/node

它应该这样说:

777  root:root

假设没有,但foo其中有另一个文件usr/local/bin/每次都可以工作,并且具有正确的权限和所有权。授予node与以下相同的权限和所有权foo

sudo chown --reference=/usr/local/bin/foo /usr/local/bin/node
sudo chmod --reference=/usr/local/bin/foo /usr/local/bin/node

相关内容