软硬链接文件原理

Linux下软硬链接文件原理图及文件删除原理_第1张图片

硬链接,通过索引节点来进行链接

硬链接原理图

Linux下软硬链接文件原理图及文件删除原理_第2张图片

硬链接的创建:

   直接执行命令“ln 源文件 硬链接文件”,即可完成创建硬链接。

硬链接知识小结:
1、具有相同Inode节点号的多个文件是互为硬链接文件。
2、删除硬链接文件或者删除源文件任意之一,文件实体并未被删除。
3、只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除。
4、当所有硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收。
5、硬链接文件就是文件的另一个入口。
6、可以通过给文件设置硬链接文件,来防止重要文件被误删。
7、硬链接文件可以用rm命令删除。
8、对于静态文件(没有进程正在调用的文件)来说,当对应硬链接数位0(i_link),文件就被删除。i_link的查看方法(ls -l结构的第三列就是)

软链接原理图:

Linux下软硬链接文件原理图及文件删除原理_第3张图片

软链接或叫符号链接,相当于windows的快捷方式
软链接的创建:

   直接执行命令“ln -s 源文件 硬链接文件”,即可完成创建软链接。

软链接知识小结:
1、 软链接类似windows的快捷方式(可以通过readlink查看其指向)。
2、 软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体。
3、 删除源文件,软链接文件依然存放,但是无法访问指向的源文件路径内容了。
4、 失效的时候一般是红字白底闪烁提示。
5、 软链接和源文件是不同类型的文件,也是不同的文件。inode号也不相同。
6、 删除软链接文件可以用rm命令。

目录链接:

① 对于目录,不可以创建硬链接,但可以创建软链接
② 目录的硬链接不能跨越文件系统
③ 每个目录下面都有一个硬链接“.”号,和对应上级目录的硬链接“..”。
④ 在父目录里面创建一个子目录,父目录的链接数增加1(子目录里都有..来指向父目录)。但是在父目录里创建文件,父目录的链接数不会增加。

删除文件原理:

Linux下软硬链接文件原理图及文件删除原理_第4张图片

Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说,每个文件都有2个link计数器:i_count 和 i_link。

i_count的意义是当前文件使用者(或被调用)的数量,i_nlink 的意义是介质连接的数量(硬链接的数量);可以理解为i_count是内存引用计数器,i_nlink是磁盘的引用计数器。