cd .. 如何知道哪个目录是 ..?

Jam*_*mes 6 cd-command

Drectories包含...它们硬链接到当前和父目录。

那么 shell 如何知道例如在提示中当前目录在 中被称为“a” cd a/path/..?它有专门的外壳吗?

否则从它的角度来看,是不是进入了一个名为 的目录..,而不是知道这个目录也是上面的目录?它怎么知道名字的?

dr_*_*dr_ 1

正如您所说,..是到父目录的硬链接。shell在访问时不需要知道目录的名称..;它只是通过索引节点访问目录。

inode 是一种存储文件(或目录)除文件名之外的所有元数据的结构:类型、权限、所有者、组、大小、访问/更改/修改/删除次数、链接数、属性、ACL 和存储实际文件内容(即数据)的地址。

  • 对于“cd”(除了 Bourne shell 之外的大多数 shell)来说,情况并非如此,它对“..”进行逻辑处理,而不管“..”硬链接如何。您需要使用“cd -P”将“cd”切换到“..”目录。请参阅http://unix.stackexchange.com/a/61513 (3认同)