V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
adoyle
V2EX  ›  Linux

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

  •  
  •   adoyle ·
    adoyle-h · 2015-10-17 20:55:28 +08:00 · 4049 次点击
    这是一个创建于 3112 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    实在不懂为什么。

    7 条回复    2015-10-17 21:57:23 +08:00
    402124773
        1
    402124773  
       2015-10-17 21:03:44 +08:00
    先用 type cd 命令看看,
    然后在 bashrc 中将 cd 命令 alias 到你的 /usr/local/bin/cd 应该可以
    KDr2
        2
    KDr2  
       2015-10-17 21:10:15 +08:00
    你确定有 /usr/bin/cd 这东西?
    lululau
        3
    lululau  
       2015-10-17 21:12:46 +08:00   ❤️ 2
    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
        4
    wd  
       2015-10-17 21:12:54 +08:00 via iPhone
    cd 是 bash 内置命令吧…
    choury
        5
    choury  
       2015-10-17 21:13:36 +08:00
    cd 是 shell 内建命令,没有执行程序
    adoyle
        6
    adoyle  
    OP
       2015-10-17 21:19:33 +08:00
    原来是这样,感谢楼上们的指点。
    alias 可行,谢谢 @402124773
    又学到新知识了,谢谢 @lululau
    Tink
        7
    Tink  
       2015-10-17 21:57:23 +08:00
    这也就是为啥没有 sudo cd 一说
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1396 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:50 · PVG 07:50 · LAX 16:50 · JFK 19:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.