我只知道两种方式:alias foo=bar和function foo() { bar }。
我问的原因是-突然在我的bash会话之一中-我无法运行ln命令,因为bash出错了-bash: /usr/local/.../ln: No such file or directory(其中/usr/local/.../是PATH环境变量中的条目之一)。
但这不是PATH问题,因为如果我运行which ln它,它会输出预期的二进制文件/usr/bin/ln(如果我指定了绝对路径,则可以很好地运行)。
我还检查了ln我的alias和function声明,没有任何内容:
$ declare -f | grep ln
$ alias | grep ln
该问题仅在一次bash会话中发生。如果我启动一个新的shell,它会再次正常工作,但是我想知道是在bash的这一特定会话中突然导致此问题的原因。
关于什么可能导致此的任何想法?
type ln我明白了ln is hashed (/usr/local/.../ln)这似乎是问题所在,但这到底是什么意思呢?我从未听说过bash中的该功能。