ls -ai
命令显示.
和..
的inode分别与当前目录和父目录相同。
.
和..
到底是什么?
它们是真实的文件还是硬链接?但据我所知,不允许创建目录的硬链接。
.
代表您所在的目录,..
代表父目录。
从点定义:
这是一个短字符串(即字符序列),被添加到 文件基本名称的末尾(即名称的主要部分) 或目录以指示文件或目录的类型。
在类 Unix 操作系统上,每个目录至少包含: 一个对象由一个点表示,另一个对象由两个点表示 连续的点。 前者指的是目录本身,后者指的是 后者指的是其父目录(即 包含它)。 这些项目会在每个 目录,可以通过使用 ls 命令及其 -a 选项来查看 (指示它显示所有内容,包括隐藏的 项目)。
它们是特殊的名称索引节点映射,它们确实算作硬链接(它们确实增加了链接计数),尽管它们并不是真正的硬链接,因为正如您所说,目录不能有硬链接。在这里阅读更多内容:硬链接和 Unix 文件系统节点 (inode)
.
代表您正在使用的当前目录
..
代表父目录。
示例:
假设您在目录
/etc/mysql
中,并且想要移动到父目录,即 /etc/
。然后使用cd..
:
/etc/mysql> cd ..
如果您想设置当前目录 bash 文件中的一个文件的路径,请使用
.
和文件名,如下所示:./filename
它们不是硬链接。您可以更多地将其视为此目录 (.) 和此目录的父目录 (..) 的简写。
尝试删除或重命名
.
或 ..
。然后你就明白为什么它不是硬链接了。