linux系统链接---硬链接

链接的概念

在linux系统中,链接可分为两种:一种为硬链接(Hard Link),另一种为软链接符号链接(Symbolic Link or Soft Link)。ln这个命令就是创建链接文件的。在默认不带参数的情况下,执行ln命令创建的链接是硬链接。如果带-s创建链接则为软链接。

硬链接

硬链接是指通过索引节点(inode)来进行链接。在linux(ext2,ext3,ext4)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(Index inode)简称inode,即在系统中文件的编号。

在linux文件系统中,多个文件名指向同一个索引节点(inode)是正常且允许的。这种情况的文件就称为硬链接。

硬链接文件就相当于文件的另外一个入口。硬链接的作用之一是允许一个文件拥有多个有效路径名(多个入口),这样用户就可以建立硬链接到重要的文件,以防止”误删”源数据(很多硬件存储,如netapp存储中的快照功能就应用了这个原理,增加一个快照就多了一个硬链接)。

为什么一个文件建立了硬链接就会防止数据误删呢?

因为文件系统(ext2)的原理是,只要文件的索引节点还有一个以上的硬链接。只删除其中一个硬链接(即仅仅删除了该文件的链接指向)并不影响索引节点本身和其它的链接,即数据文件的实体并未被删除。

只有当文件的最后一个链接被删除后,此时如果有新数据要存储到硬盘上时或者系统通过类似fsck做磁盘检查的时候。被删除文件的数据块及目录的链接才会被释放,空间被新数据占用并覆盖,此时数据就再也无法找回了。

硬链接的创建

ln 源文件 硬链接文件

硬链接知识小结

  • 具有相同inode节点号的多个文件是互为硬链接文件。
  • 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除。
  • 只有删除了源文件以及所有对应的硬链接文件,文件实体才会被删除。
  • 当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收。
  • 硬链接文件就是文件的另一个入口。
  • 可以通过给文件设置硬链接文件,来防止重要文件被误删。
  • 通过执行命令ln 源文件 硬链接文件,即可完成创建硬链接。
  • 硬链接文件可以用rm命令删除。
  • 对于没有被进程正在调用的文件来讲,当对应硬链接数为0(i_link),文件就被删除。

实例

[root@ianLinux test]# cat ianfile
study linux.
  • 1
  • 2

这里写图片描述

这里写图片描述

转载至https://blog.csdn.net/codetz/article/details/52414671

猜你喜欢

转载自blog.csdn.net/vic_qxz/article/details/80224353