Linux $PATH 变量、软链接和未找到命令

Linux $PATH 变量、软链接和未找到命令

我遇到了符号链接和 $PATH 变量的问题。

我有一个目录:

# /usr/rulerX/square

其中 /usr/rulerX/square 是一个符号链接,例如:

# ls -la
square --> square.hg.current

我的路径变量设置为:

# echo $PATH
/usr/rulerX/square/bin:/usr/local/bin:/usr/bin

我在 /usr/rulerX/square.hg.current/bin/ 下有一个文件 runSquare

问题如下:

# runSquare
runSquare: Command Not Found

怎么回事?如果我将 /usr/rulerX/square.hg.current/bin 设置为 PATH,一切正常。但是,如果我有符号链接(只有“square”),它就找不到该文件。

  • 我正在使用带有 csh 的 CentOS

答案1

一些 shell(包括csh和衍生产品)会维护目录中的预处理文件列表,以PATH提高搜索速度。如果您的 shell 正在这样做,则需要指示它重建列表。

通常有一个内置的 shell 用于实现这一点,它通常被称为rehash

答案2

没关系;似乎几分钟后;到 /bin/ 的 $PATH 传播到了符号链接。

这可能是一个错误?

相关内容