概述
Linux 中有一种文件叫做链接文件,可以起到保护文件不被丢失或者文件共享的作用,而链接又分为硬链接(Hard Link)和软连接(Symbolic Link)。
硬链接:以文件副本的形式存在,允许一个文件拥有多个路径,类似复写纸,删除其中一个硬链接文件不会对其他链接文件照成影响,用户可以通过这种机制链接到一些重要文件上,以访误删。
软链接:存放另一个文件的路径的形式存在,类似 Windows 中的快捷方式,删除软链接对源文件无影响,但删除源文件,则软链接就成为了死链接。
测试
测试前,先查看下哪些文件是链接文件:
以 l 字母开头的即为链接文件,每个链接文件都指向了一个路径
-
创建测试文件
[root@localhost home]# touch text.txt #创建text.txt文件 [root@localhost home]# ls text.txt [root@localhost home]#
-
创建硬链接文件
[root@localhost home]# ln text.txt t1 #创建t1文件作为硬链接文件 [root@localhost home]# ls t1 text.txt [root@localhost home]#
-
创建软链接文件
[root@localhost home]# ln -s text.txt t2 #创建t2文件作为软链接文件 [root@localhost home]# ls t1 t2 text.txt [root@localhost home]#
-
写入字符串到测试文件
[root@localhost home]# echo "I love China" >> text.txt #写入“I love China”到测试文件中 [root@localhost home]# cat text.txt #查看内容 I love China #输出内容 [root@localhost home]#
-
查看两个链接文件
[root@localhost home]# cat t1 #查看硬链接文件t1 I love China [root@localhost home]# cat t2 #查看软链接文件t2 I love China [root@localhost home]#
由于 t1 和 t2 文件都链接到了 text.txt 文件,所以查看 t1 和 t2 就相当于查看 text.txt 文件
-
删除源测试文件再次查看
[root@localhost home]# rm -rf text.txt #删除text.txt文件 [root@localhost home]# ls t1 t2 [root@localhost home]# cat t1 #查看硬链接文件t1 I love China [root@localhost home]# cat t2 #查看软链接文件t2 cat: t2: 没有那个文件或目录 [root@localhost home]#
因为硬链接文件是以文件副本存在的,所以删除源文件,硬链接文件依旧可以查看,而软链接文件相当于快捷方式,删除源文件,快捷方式则指向空文件,即无法打开