amp*_*ent 6 filesystems command
可能的重复:
为什么 cd 不是程序?
我注意到所有其他常用的 util,比如ls, cp, rm
,等等,实际上都是 /bin 中的文件——但cd
不是。它也不在任何其他二进制文件目录中(例如/usr/bin, /bin, /sbin
等)。
为什么会这样?
cd
是一个shell 内置的。所以它是 shell 本身的一部分,而不是一个单独的可执行文件。
基本上有两类内置函数。
cd
)或者因为它们在技术上更容易使用这种方式。在某些情况下,常规内置也可能以非内置形式存在。后一种情况的一个例子是echo
,它在每个现代 shell 中都实现,但也存在,主要是由于历史原因,如/bin/echo
.将关键功能内置的另一个原因是它确保核心功能继续保持可访问性,即使您的系统发生了灾难性的事情。例如,如果共享库损坏或无法访问,如果您无法访问/bin
或/sbin
,或者如果系统资源受限,不允许运行更多可执行文件,这可能很重要。