前言
大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
主要内容含:
欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!
- YY的《C++》专栏
- YY的《C++11》专栏
- YY的《Linux》专栏
- YY的《数据结构》专栏
- YY的《C语言基础》专栏
- YY的《初学者易错点》专栏
- YY的《小小知识点》专栏
- YY的《单片机期末速过》专栏
- YY的《C++期末速过》专栏
- YY的《单片机》专栏
- YY的《STM32》专栏
- YY的《数据库》专栏
- YY的《数据库原理》专栏
目录
- 一.前情回顾:
- 1.查看文件元数据与inode编号
- 2.硬链接文件不属于真正意义上的文件
- 3.Linux中不允许用户对目录建立硬链接文件
- 二.解析部分:
- 三.理解原理后,试着分析<在newdir1下,再创建newdir2,newdir1硬链接数变成3>
一.前情回顾:
1.查看文件元数据与inode编号
- 我们使用
ls -l
的时候看到的除了看到文件名,还看到了文件元数据。
[root@localhost linux]# ls -l
总用量 12
-rwxr-xr-x. 1 root root 7438 "9月 13 14:56" a.out
-rw-r--r--. 1 root root 654 "9月 13 14:56" test.c
- 分别对应含义如下图所示
- 使用
ls -li
,还可以看到 inode编号
[root@localhost linux]# ls -l
总用量 12
54329 -rwxr-xr-x. 1 root root 7438 "9月 13 14:56" a.out
2.硬链接文件不属于真正意义上的文件
※为什么软连接是一个独立的文件而硬链接不是? 是因为软连接 有独立的inode编号。
- 我们对test2创建一个硬链接文件test1.hard.link
- 发现 二者inode编号一致
3.Linux中不允许用户对目录建立硬链接文件
- 为了1. 防止目录循环引用 2. 保护文件系统结构完整性 3.简化文件系统设计,Linux中不允许用户对目录建立硬链接文件
二.解析部分:
- 我们分别创建一个
普通文件testfile
和一个目录文件testdir
,ls -li
查看源目录; - 发现创建目录,硬链接数是2;创建文件时,硬链接数是1
-
普通文件,只有 文件名 和inode编号有映射关系 , 所以硬链接数为1
-
我们进入空目录,任何一个空目录, 下面都有两个隐藏的 硬链接文件
. 表示当前目录——————因为这个文件(指向)的inode,和目录文件本身的inode是同一个
..表示上一级目录
- 所以目录文件,除了 文件名 和inode有映射关系 ,还有目录文件下面的
硬链接.
和inode有映射关系 , 所以硬链接数为2
三.理解原理后,试着分析<在newdir1下,再创建newdir2,newdir1硬链接数变成3>
-
在newdir1下,再创建newdir2,发现newdir1的硬链接数变成了3
-
我们查看下newdir2的隐藏文件(硬链接),又有一个硬链接文件指向了他