链接文件

  链接文件是linux文件系统的一个优势。如果要在系统上维护同一个文件的两份或多份副本,除了保持多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。

这种虚拟的副本就称为链接。链接是目录中指向文件真实位置的占位符。在linux中有两种不同类型的文件链接:

  • 链接符号(软链接)
  • 硬链接

符号链接

符号链接就是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。这两个通过符号链接在一起的文件,要为一个文件创建符号链接,原始文件必须事先存在。

 

1 [root@linux-node1 ~]# ln -s test.txt test-01.txt
2 
3 [root@linux-node1 ~]# ls -lhi
4 
5 33961952 lrwxrwxrwx 1 root root 8 Feb 17 03:02 test-01.txt -> test.txt
6 33658435 -rw-r--r-- 1 root root 0 Feb 16 10:45 test.txt

 

 软链接知识小结:

  1. 软链接类似windows的快捷方式(可以通过readlink查看指向)
  2. 软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体
  3. 删除源文件,软连接文件依然存在,但是无法访问指向的源文件内容了
  4. 失效的时候一般是白字红底闪烁提示
  5. 执行命令“ln -s 源文件 软连接文件”,即可完成创建软连接(目标不能存在)
  6. 软链接和源文件是不同类型的文件,也是不同的文件。inode号也不同
  7. 删除软链接文件可以使用rm命令
  8. 不论更改源文件还是目标文件,另一处文件也会有相同的改动

硬链接

硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言是同一个文件,引用硬链接文件等同于引用了源文件。要创建硬链接,原始文件也必须是事先存在。

1 [root@linux-node1 ~]# ln test.txt test02.txt
2 [root@linux-node1 ~]# ls -lhi
3 
4  33961952 lrwxrwxrwx   1 root root    8 Feb 17 03:02 test-01.txt -> test.txt
5  33658435 -rw-r--r--   2 root root    8 Feb 17 03:08 test02.txt
6  33658435 -rw-r--r--   2 root root    8 Feb 17 03:08 test.txt

可以发现带有硬链接文件test02.txt和test.txt的inode号相同,因为它们是同一个文件。

注意:只能对处于同一存储媒体的文件创建硬链接。要想在不同存储媒体的文件之间创建链接,只能使用符号链接(软链接)。

全局总结:

  • 全局结论:删除软链接文件对源文件及硬链接文件无任何影响。
  • 全局结论:删除硬链接文件对源文件及软链接文件无任何影响。
  • 全局结论:删除源文件,对硬链接文件没有影响,但是会导致软链接文件失效,白字红底闪烁。
  • 同时删除源文件,硬链接文件,整个文件会真正的被删除。
  • 源文件和硬链接文件具有相同的索引节点号,可以认为是同一个文件或一个文件的多个入口。
  • 源文件和软链接文件索引节点号不同,是不同的文件,软链接相当于源文件的快捷方式,含有源文件的位置指向。

关于目录的总结:

  • 对于目录,不可以创建硬链接,但是可以创建软链接。
  • 对于目录的软链接是生产场景运维中常用的技巧
  • 目录的硬链接不能跨越文件系统(从硬链接原理可以理解)
  • 每个目录下面都有一个硬链接“.”号,和对应上级目录的硬链接“..”。
  • 在父目录里创建一个子目录,父目录的链接数量增加1(子目录里都有..来指向父目录)。但是再父目录里创建文件,父目录的链接数不会增加。

 

posted @ 2020-02-18 12:32  李白不爱美女爱打野  阅读(196)  评论(0编辑  收藏  举报