ls -ai
命令显示 .
和 ..
的索引节点与当前目录和父目录相同。那么
.
和 ..
到底是什么呢?它们是真实的文件吗,甚至是硬链接?但据我所知,不允许创建目录的硬链接。
.
代表当前所在的目录,..
代表父目录。
来自于dot definition:
这是一个短字符串(即一系列字符),它被添加到文件或目录的基本名称(即名称的主要部分)的末尾,以指示文件或目录的类型。
在类Unix的操作系统中,每个目录至少包含一个由单个点表示的对象和另一个由两个连续点表示的对象。 前者指代该目录本身,后者指代其父目录(即包含它的目录)。 这些项目在每个目录中自动创建,在使用带有-a选项的ls命令(该选项指示它显示所有内容,包括隐藏项目)时可以看到。
它们是特殊的名称-索引映射,虽然它们不是真正的硬链接(因为目录不能有硬链接),但它们确实算作硬链接(会增加链接计数)。更多信息请点击这里了解:硬链接和Unix文件系统节点(inode)。
.
代表当前正在使用的目录,而..
代表上级目录。
例如:
假设您在目录/etc/mysql
中,并且希望移动到上级目录,即/etc/
。那么请使用cd..
命令:
/etc/mysql> cd ..
如果您想要在当前目录bash文件中设置一个文件路径,请使用.
加上文件名的方式,就像这样:./filename
它们不是硬链接。您可以将其看作是当前目录(.)和父级目录(..)的简写。
尝试删除或重命名.
或..
,然后您就会理解为什么它不是硬链接。
mv
命令和...
,相关目录不见了! - user2023370...
,因此被隐藏了,因为它以点号开头 :) - user2023370.
,例如git add .
,它将会把当前目录(以及其子目录)中的所有内容都添加到暂存区,而git add ..
则会把父级目录(以及其子目录)中的所有内容都添加到暂存区。 - mfaanigit add .
中的.
是什么意思了,哈哈。 - M.Ed