我遇到了符号链接和 $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 传播到了符号链接。
这可能是一个错误?