在 Bash 中创建“别名”有多少种不同的方式?

在 Bash 中创建“别名”有多少种不同的方式?

我只知道两种方法:alias foo=barfunction 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 会话中是什么突然导致了这个问题。

关于可能导致此问题的任何想法?

答案1

使用该命令时要小心which。最好使用type ...命令。

$ type ln
ln is /bin/ln

您还可以使用whereis命令:

$ whereis ln
ln: /bin/ln /usr/share/man/man1p/ln.1p.gz /usr/share/man/man1/ln.1.gz

相关内容