![文件夹中的“。”和“..”代表什么意思?](https://linux22.com/image/811033/%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E7%9A%84%E2%80%9C%E3%80%82%E2%80%9D%E5%92%8C%E2%80%9C..%E2%80%9D%E4%BB%A3%E8%A1%A8%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F.png)
当我ls -a
查看文件夹中的隐藏文件时,默认创建了 2 个隐藏文件,这两个文件有什么.
意义..
?
ls -a
生产
. ..
答案1
.
是当前文件夹。
..
是当前文件夹上方的文件夹 - 包含当前文件夹的文件夹。
当有人想从其主目录运行脚本时,您有时会看到使用单个点。例如:./install-app.sh
。这意味着该install-app.sh
文件位于当前目录。这样做同样有效/home/username/directory/install-app.sh
。同样,../install.app
如果文件位于父目录。这样做的原因不仅是为了导航,而且还避免仅仅通过错误命名主目录中的文件而意外隐藏系统应用程序。
答案2
这些是指向自身 (.) 和父目录 (..) 的硬链接。它们是在您创建目录时创建的。它们永远无法被删除(除非删除它们指向的目录)。
如果你创建一个目录:
mkdir /tmp/foo
您可以看到,实际上有 2 个到 /tmp/foo 的硬链接:
drwxr-xr-x 2 michal michal 4096 2011-08-07 18:40 /tmp/foo
^---- two hardlinks
第一个是从 /tmp/ 目录指向 /tmp/foo,第二个是 /tmp/foo/ 中的 '.' 指向它自己。
答案3
另请注意,您可以使用ls -A
(而不是ls -a
)列出所有文件(包括隐藏文件,但不包括.
和..
目录)。
答案4
.
当前文件夹
..
父文件夹