假设我登录到 unix 系统上的 shell 并开始敲击命令。我最初从用户的主目录开始~
。我可能会从那里cd
下到目录Documents
。
这里更改工作目录的命令非常简单直观地理解:父节点有一个它可以访问的子节点列表,并且大概它使用搜索的(优化的)变体来定位子节点的存在用户输入的名称,然后“更改”工作目录以匹配此 - 如果我在那里错了,请纠正我。甚至更简单的是,shell 只是“天真地”尝试完全按照用户的意愿访问目录,并且当文件系统返回某种类型的错误时,shell 会相应地显示响应。
然而,我感兴趣的是,当我向上导航目录时,相同的过程是如何工作的,即到父级或父级的父级。
鉴于我未知的,可能是“盲”的位置Documents
,可能是整个文件系统树中具有该名称的多个目录之一,Unix 如何确定我接下来应该放在哪里?它是否参考pwd
并检查了它?如果是,如何pwd
跟踪当前的导航状态?