自己写了一个 /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 一说