是句点命令“。”和“..”实际上引用了一个文件?

Are the period commands "." and ".." actually referencing a file?

因为 Unix 中的一切都是文件,所以当我们调用 "cd ." 时,我们实际上是在 cding 到目录中。 ?是每个目录的父目录的受保护符号引用吗?

是的,Unix 中的一切都是文件。像任何目录、任何类型的文件、任何设备(扬声器、键盘等)甚至文件系统本身一样,都像 OS 的文件一样。在 Unix 中,每个文件都有一个附加的索引节点,其中包含文件元数据,例如有关权限、大小、时间戳的信息以及最重要的文件数据块指针,这些指针指向包含实际文件数据的数据块。

因此每个目录(是一个文件)也有一个索引节点。目录的内容是记录序列。每条记录至少有两个字段,分别是文件名和索引节点号。

file1name  file1_inode_number

记录的确切结构取决于文件系统的实现。所以基本上目录文件包含一个对应于每个文件的(记录)条目和其中的直接子目录。除此之外,目录文件还包含另外 2 个条目

.    :  mapped with self inode 
and 
..   :  mapped with parent's inode

所以整个目录结构看起来像

.          inode_number_of_self
..         inode_number_of_parent_dir
file1name  inode_number_of_file1
file2name  inode_number_of_file2
.
.
so on

因此,每当您 cd ./cd ../ OS 指的是相对于当前目录的当前目录或父目录(分别)。