技术解析

自己写了一个 /usr/local/bin/cd,但是每次调用还是 /usr/bin/cd
0
2021-07-08 13:05:07
idczone

自己写了一个 /usr/local/bin/cd,用于包装 /usr/bin/cd,在之上加了一些自己的功能。
但是每次调用 cd 调用的还是那个 /usr/bin/cd

which cd 输出的是 /usr/local/bin/cd 。
echo $PATH,/usr/local/bin 是在 /usr/bin 之前。

实在不懂为什么。


先用 type cd 命令看看,
然后在 bashrc 中将 cd 命令 alias 到你的 /usr/local/bin/cd 应该可以

你确定有 /usr/bin/cd 这东西?

type -a cd
你会明白的, shell 用的一个叫做 cd 的 built command. 不是你的 /usr/local/bin/cd ,也不是 /usr/bin/cd
其实我老早也发现了有个 /usr/bin/cd ,一直不明白 /usr/bin/cd 是干吗用的,看到这个帖子就搜了一下,答案在这里:
http://unix.stackexchange.com/questions/50058/what-is-the-point-of-the-cd-external-command

cd 是 bash 内置命令吧…

cd 是 shell 内建命令,没有执行程序

原来是这样,感谢楼上们的指点。
alias 可行,谢谢 @402124773
又学到新知识了,谢谢 @lululau

这也就是为啥没有 sudo cd 一说

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服