美文网首页每天一个Linux命令程序员
Linux为什么创建目录后,硬链接数是2

Linux为什么创建目录后,硬链接数是2

作者: BlackChen | 来源:发表于2018-01-17 22:46 被阅读972次

在一个目录下执行 ll

[hadoop@hadoop0 test]$ ll
total 8
drwxrwxr-x. 2 hadoop hadoop 4096 Jan 17 22:28 a
drwxrwxr-x. 2 hadoop hadoop 4096 Jan 17 22:28 b
-rw-rw-r--. 1 hadoop hadoop    0 Jan 17 22:28 c

发现,a目录与b目录的硬链接数是2 ,而文件c的硬链接数是1
这是为什么呢?

发现:
在a目录下,创建一个目录,a的硬链接会加1

cd a ; mkdir d

[hadoop@hadoop0 test]$ tree
.
├── a
│   └── d
├── b
└── c

3 directories, 1 file

ll

[hadoop@hadoop0 test]$ ll
total 8
drwxrwxr-x. 3 hadoop hadoop 4096 Jan 17 22:29 a
drwxrwxr-x. 2 hadoop hadoop 4096 Jan 17 22:28 b
-rw-rw-r--. 1 hadoop hadoop    0 Jan 17 22:28 c

再创建一个

cd a ; mkdir e

[hadoop@hadoop0 test]$ tree
.
├── a
│   ├── d
│   └── e
├── b
└── c

4 directories, 1 file

ll

total 8
drwxrwxr-x. 4 hadoop hadoop 4096 Jan 17 22:32 a
drwxrwxr-x. 2 hadoop hadoop 4096 Jan 17 22:28 b
-rw-rw-r--. 1 hadoop hadoop    0 Jan 17 22:28 c

发现a的硬链接又增加1.

原因:
原来是因为目录中的 .. . 这两个目录

ls -la

[hadoop@hadoop0 test]$ ls -la
total 16
drwxrwxr-x. 4 hadoop hadoop 4096 Jan 17 22:28 .
drwxrwxr-x. 3 hadoop hadoop 4096 Jan 17 22:28 ..
drwxrwxr-x. 4 hadoop hadoop 4096 Jan 17 22:32 a
drwxrwxr-x. 2 hadoop hadoop 4096 Jan 17 22:28 b
-rw-rw-r--. 1 hadoop hadoop    0 Jan 17 22:28 c

每创建一个目录,就会在创建的目录下默认新增..上级目录的硬链接和.当前目录的硬链接
使用stat命令查看文件的信息,我们发现:

stat a

[hadoop@hadoop0 test]$ stat a
  File: ‘a’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 135810      Links: 4
Access: (0775/drwxrwxr-x)  Uid: ( 1001/  hadoop)   Gid: ( 1001/  hadoop)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2018-01-17 22:32:03.796604932 +0800
Modify: 2018-01-17 22:32:01.830052167 +0800
Change: 2018-01-17 22:32:01.830052167 +0800
 Birth: -

a 的Inode 为 135810

进入a目录cd a
执行 stat .

[hadoop@hadoop0 a]$ stat .
  File: ‘.’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 135810      Links: 4
Access: (0775/drwxrwxr-x)  Uid: ( 1001/  hadoop)   Gid: ( 1001/  hadoop)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2018-01-17 22:32:03.796604932 +0800
Modify: 2018-01-17 22:32:01.830052167 +0800
Change: 2018-01-17 22:32:01.830052167 +0800
 Birth: -

.目录的Inode也是135810

我们再进入d目录 (a的子目录),使用stat

[hadoop@hadoop0 d]$ stat ..
  File: ‘..’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 135810      Links: 4
Access: (0775/drwxrwxr-x)  Uid: ( 1001/  hadoop)   Gid: ( 1001/  hadoop)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2018-01-17 22:32:03.796604932 +0800
Modify: 2018-01-17 22:32:01.830052167 +0800
Change: 2018-01-17 22:32:01.830052167 +0800
 Birth: -

发现a的子目录d中的..目录的Inode和a目录的Inode以及 a目录中的.目录的Inode相同.

这就是为什么创建一个目录,一开始硬链接数为2( 创建的目录名和目录中的. ,并且新创建一个目录,父目录的硬链接会加1 (子目录中的..)

相关文章

  • Linux为什么创建目录后,硬链接数是2

    在一个目录下执行 ll 发现,a目录与b目录的硬链接数是2 ,而文件c的硬链接数是1这是为什么呢? 发现:在a目录...

  • 修改权限

    创建一个新目录,他的硬连接数为2.在这个目录下创建一个新目录,他的硬链接数为3.目录的硬链接数为他下面的子目录数+...

  • Linux59期day12

    创建1个新目录他的硬链接数是2? 为何? 在这个目录下面创建1个新目录 /lidao/alex/ lidao目录...

  • 2019-04-11ln硬链接id用户组useradd添加用户c

    创建1个新目录他的硬链接数是2? 为何? 在这个目录下面创建1个新目录 /lidao/alex/ lidao目录...

  • Linux运维-day12-用户基础知识与权限基础

    昨日内容回顾: 目录的硬链接数为何是2或3? 今日总结:用户相关基础、Linux权限基础、Linux下面时间 一、...

  • 软链接和硬链接创建

    1 概述 日常工作中,需要对文件或者是目录创建链接,使得工作更加方便 2 硬链接 硬链接用于创建文件,不能用于创建...

  • ln -s 软链接

    linux 创建连接命令 ln -s 软链接linux-ln -s(链接)、mount(挂载 软连接和硬连接 硬链...

  • 成为Java顶尖程序员,先过了下面问题!(四)

    五、Linux使用与问题分析排查 1.使用两种命令创建一个文件? 2.硬链接和软链接的区别? 硬链接是有着相同 i...

  • 关于ln创建硬链和软链的简单实践

    1 创建硬链接 硬链接会在目标目录生成一个大小相同的文件 使用 ls -l 命令可以查看 2 创建软连接 软连接只...

  • Linux基础学习十(下)

    三:磁盘管理 1.硬链接 (1)只能对文件创建,不能应用于目录 (2)不能跨文件系统 (3)创建硬链接会增加文件被...

网友评论

    本文标题:Linux为什么创建目录后,硬链接数是2

    本文链接:https://www.haomeiwen.com/subject/gnrpoxtx.html