软硬方式链接
当咱们学习完了第六章中所有对硬盘管理的知识后,刘遄老师终于放心可以给同学们讲一下在Linux系统中的“快捷方式”啦。在Windows系统中的快捷方式就是指向原始文件的一个链接文件,让用户能够从不同的位置来访问到原始的文件,而原文件一旦被删除或剪切到其他地方也会导致链接文件失效,但是这个看似简单的东东在Linux系统中可不太一样。
硬链接(hard link)可以被理解为一个“指向原始文件inode的指针”,系统不为它分配独立的inode与文件,所以实际上来讲硬链接文件与原始文件其实是同一个文件,只是名字不同。于是每添加一个硬链接,该文件的inode连接数就会增加1,直到该文件的inode连接数归0才是彻底删除。也就是说因为硬链接实际就是指向原文件inode的指针,即便原始文件被删除依然可以通过链接文件访问,但是由于技术的局限性而不能跨文件系统也不能链接目录文件。
软链接也称为符号链接(symbolic link)即“仅仅包含它所要链接文件的路径名”因此能做目录链接也可以跨越文件系统,但原始文件被删除后链接文件也将失效,性质上和Windows™系统中的“快捷方式”是一样的。
ln命令用于创建链接文件,格式为:“ln [选项] 目标”。
可以使用ln命令创建出两种性质不同的快捷方式文件,而这个差别实际只在这个-s参数上面,因此如果没有扎实的理论知识和实践经验做铺垫,可能实验能够做成功,但永远不会明白为什么会成功。详情请关注《linux就该这么学》。
操作方法
- 01
为了更好的理解软、硬链接文件的不同性质,先来尝试创建一个类似于Windows系统中的快捷方式软链接吧,这样当原始文件被删除后,新建出来的链接文件一定也就不能再继续读取了。 [root@linuxprobe ~]# echo "Welcome to linuxprobe.com" > readme.txt [root@linuxprobe ~]# ln -s readme.txt readit.txt [root@linuxprobe ~]# cat readme.txt Welcome to linuxprobe.com [root@linuxprobe ~]# cat readit.txt Welcome to linuxprobe.com [root@linuxprobe ~]# ls -l readme.txt -rw-r--r-- 1 root root 26 Jan 11 00:08 readme.txt [root@linuxprobe ~]# rm -f readme.txt [root@linuxprobe ~]# cat readit.txt cat: readit.txt: No such file or directory
- 02
接下来创建一个Linux系统中的硬链接来再对原文件硬盘存储位置做一个指针,而这样就不再依赖于原始文件的名称等等信息,也不会在因原文件被删除后导致新的文件读取失败,同时可以看到创建硬链接后的原文件的硬盘链接数量被增加到了2。 [root@linuxprobe ~]# echo "Welcome to linuxprobe.com" > readme.txt [root@linuxprobe ~]# ln readme.txt readit.txt [root@linuxprobe ~]# cat readme.txt Welcome to linuxprobe.com [root@linuxprobe ~]# cat readit.txt Welcome to linuxprobe.com [root@linuxprobe ~]# ls -l readme.txt -rw-r--r-- 2 root root 26 Jan 11 00:13 readme.txt [root@linuxprobe ~]# rm -f readme.txt [root@linuxprobe ~]# cat readit.txt Welcome to linuxprobe.com