Linux 哪个 CD 有效。但是 cd 是 bash 中的内置命令

Linux which cd worked. But cd is a builtin command in bash

刚刚学了Linux,看了书"The Linux Command-Line"。它说:

cd is a builtin command in bash.

所以我们无法通过 which cd 找到任何东西;但不知何故它在我的电脑上运行良好:

$ which cd
/usr/bin/cd

是因为我用的是CentOS吗?

对于 shell 内置函数使用 help 而不是 manhelp cd 会给你使用信息。 which 具有误导性,因为它只查找二进制文件。使用 type.

$ type cd
cd is a shell builtin

$ help cd
cd: cd [-L|[-P [-e]] [-@]] [dir]
    Change the shell working directory.
...

碰巧,您的系统上有一个无用的二进制文件* /usr/bin/cd。它没用,因为 shell 内置函数取代了它,而且二进制文件不可能更改父 shell 的目录。尝试使用它,你会发现它根本没有任何作用。

/dir1$ /usr/bin/cd /dir2
/dir1$