自己写了一个 /usr/local/bin/cd,但是每次调用还是 /usr/bin/cd

2015-10-17 20:55:28 +08:00
 adoyle
自己写了一个 `/usr/local/bin/cd`,用于包装 `/usr/bin/cd`,在之上加了一些自己的功能。
但是每次调用 `cd` 调用的还是那个 `/usr/bin/cd`。

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

实在不懂为什么。
4193 次点击
所在节点    Linux
7 条回复
402124773
2015-10-17 21:03:44 +08:00
先用 type cd 命令看看,
然后在 bashrc 中将 cd 命令 alias 到你的 /usr/local/bin/cd 应该可以
KDr2
2015-10-17 21:10:15 +08:00
你确定有 /usr/bin/cd 这东西?
lululau
2015-10-17 21:12:46 +08:00
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
wd
2015-10-17 21:12:54 +08:00
cd 是 bash 内置命令吧…
choury
2015-10-17 21:13:36 +08:00
cd 是 shell 内建命令,没有执行程序
adoyle
2015-10-17 21:19:33 +08:00
原来是这样,感谢楼上们的指点。
alias 可行,谢谢 @402124773
又学到新知识了,谢谢 @lululau
Tink
2015-10-17 21:57:23 +08:00
这也就是为啥没有 sudo cd 一说

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/228844

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX