我只知道两种方式: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
Run Code Online (Sandbox Code Playgroud)
问题仅发生在一个 bash 会话中。如果我启动一个新的 shell,它会再次正常工作,但我想知道在这个特定的 bash 会话中是什么突然导致了这个问题。
关于可能导致这种情况的任何想法?
slm*_*slm 10
使用which
命令时要小心。最好使用type ...
命令。
$ type ln
ln is /bin/ln
Run Code Online (Sandbox Code Playgroud)
您也可以使用以下whereis
命令:
$ whereis ln
ln: /bin/ln /usr/share/man/man1p/ln.1p.gz /usr/share/man/man1/ln.1.gz
Run Code Online (Sandbox Code Playgroud)