Linux中为什么 “..” 就是上一级目录?

显示目标列表命令:ls

-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;

Ext2 /3文件系统中的inode

Linux上的文件系统一般来说就是EXT2EXT3,博文《Linux文件系统详解》中对inode的总结为:

1.一个文件占用一个 inode,每个inode有编号

2.Linux 系统存在 inode 号被用完但磁盘空间还有剩余的情况
注意,这里的文件不单单是普通文件,目录文件也就是文件夹其实也是一个文件,还有其他的也是
inode 的数量与大小在格式化时就已经固定了,每个inode 大小均固定为128 bytes (新的ext4 与xfs 可设定到256 bytes)

3.文件系统能够建立的文件数量与inode 的数量有关,存在空间还够但inode不够的情况

4.系统读取文件时需要先找到inode,并分析inode 所记录的权限与使用者是否符合,若符合才能够开始实际读取 block 的内容

想要更深的了解Linux文件系统机制的可以学习博文:https://www.cnblogs.com/bellkosmos/p/detail_of_linux_file_system.html

实验验证

 进入根目录

wxd@DESKTOP-SD6D2NM:/$ cd /

 查看当前的目录的文件索引节点(inode)

wxd@DESKTOP-SD6D2NM:/$ ls -ai
17169973579354190 .     25614222880678456 lib     1407374883572490 sbin
17169973579354190 ..    844424930151137   lib64   1125899906862399 snap
6192449487638721  bin   1407374883572454  media   844424930151744  srv
1688849860268903  boot  2533274790415081  mnt                   1  sys
7318349394915385  dev   1407374883572460  opt     844424930151747  tmp
11821949021852965 etc                  1  proc    1970324836994373 usr
4785074604089911  home  1688849860283122  root    2533274790481388 var
33495522228572247 init  10696049115543003 run

假设进入 /mnt 目录下,并查看 /mnt 目录下的文件索引节点(inode)

在进入 /mnt/e/ 目录下,并查看 /mnt/e 目录下的文件索引节点(inode)

wxd@DESKTOP-SD6D2NM:/$ cd mnt/  && ls -ai
 2533274790415081 .    1407374883553285 c   1407374883553285 e
17169973579354190 ..   1407374883553285 d
wxd@DESKTOP-SD6D2NM:/mnt$ cd e/  && ls -ai
1407374883553285  .                1970324837005878 MyPhoto
2533274790415081  ..               844424930132019  MyPractice
24488322973827116 CloudMusic       281474976710692  $RECYCLE.BIN
281474976742210   MyDocument       281474976710697  System Volume Information
844424930132023   MyDrivers        1688849860291601 TyporaDoc
5066549580823356  MyInstallFiles   1688849860295201 win10Script
3377699720559144  MyLearn          1688849860263989 workZG

由上可以看出:

根目录下'.'的inode号为:             17169973579354190

根目录下 '..' 的inode号为:          17169973579354190

/mnt/ 目录下'.'的inode号为:        2533274790415081

/mnt/ 目录下'..'的inode号为:       17169973579354190

/mnt/e/目录下的'.'的inode号为:  1407374883553285

/mnt/e/目录下的'..'的inode号为:  2533274790415081 

不妨发现:

/mnt/e/目录下的'..'的inode号 与 /mnt/ 目录下'.'的inode号相同

/mnt/ 目录下'..'的inode号 与 根目录下'.'的inode号相同

根目录下'.'的inode号 与 根目录下'..'的inode号相同

得出结论

.为当前目录索引节点

..为上一目录索引节

根目录的上一目录也是它本身。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盗骊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值