6.8 软硬方式链接
当引领大家学习完本章所有的硬盘管理知识之后,刘遄老师终于可以放心大胆地讲解Linux系统中的“快捷方式”了。在Windows系统中,快捷方式就是指向原始文件的一个链接文件,可以让用户从不同的位置来访问原始的文件;原文件一旦被删除或剪切到其他地方后,会导致链接文件失效。但是,这个看似简单的东西在Linux系统中可不太一样。
在Linux系统中存在硬链接和软连接两种文件。
硬链接(hard link):可以将它理解为一个“指向原始文件inode的指针”,系统不为它分配独立的inode和文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的inode连接数就会增加1;而且只有当该文件的inode连接数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接。
软链接(也称为符号链接[symbolic link]):仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与Windows系统中的“快捷方式”具有一样的性质。
ln命令
ln命令用于创建链接文件,格式为“ln [选项] 目标”,其可用的参数以及作用如表6-6所示。在使用ln命令时,是否添加-s参数,将创建出性质不同的两种“快捷方式”。因此如果没有扎实的理论知识和实践经验做铺垫,尽管能够成功完成实验,但永远不会明白为什么会成功。
表6-6 ln命令中可用的参数以及作用
参数 | 作用 |
-s | 创建“符号链接”(如果不带-s参数,则默认创建硬链接) |
-f | 强制创建文件或目录的链接 |
-i | 覆盖前先询问 |
-v | 显示创建链接的过程 |
为了更好地理解软链接、硬链接的不同性质,接下来创建一个类似于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
接下来针对一个原始文件创建一个硬链接,即相当于针对原始文件的硬盘存储位置创建了一个指针,这样一来,新创建的这个硬链接就不再依赖于原始文件的名称等信息,也不会因为原始文件的删除而导致无法读取。同时可以看到创建硬链接后,原始文件的硬盘链接数量增加到了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
出现问题?大胆提问!
因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~
Linux技术交流请加A群:560843(满),B群:340829(推荐),C群:463590(推荐),点此查看全国群。
*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。
本章节的复习作业(答案就在问题的下一行哦,用鼠标选中即可看到的~)
1./home目录与/root目录内存放的文件有何相同点以及不同点?
答:这两个目录都是用来存放用户的家目录数据的,但是,/root目录存放的是root管理员的家目录数据。
2.假如一个设备的文件名称为/dev/sdb,可以确认它是主板第二个插槽上的设备吗?
答:不一定,因为设备的文件名称是由系统的识别顺序来决定的。
3.如果硬盘中需要5个分区,至少需要几个逻辑分区?
答:可以选用创建3个主分区+1个扩展分区的方法,然后把扩展分区再分成2个逻辑分区,即有了5个分区。
4./dev/sda5是主分区还是逻辑分区?
答:逻辑分区。
5.哪个服务决定了设备在/dev目录中的名称?
答:udev设备管理器服务。
6.用一句话来描述挂载操作。
答:当用户需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是“挂载”。
7.在配置quota磁盘容量配额服务时,软限制数值必须小于硬限制数值么?
答:不一定,软限制数值可以小于等于硬限制数值。
8.若原始文件被改名,那么之前创建的硬链接还能访问到这个原始文件么?
答:可以。
本文原创地址:https://www.linuxprobe.com/chapter-06.html 编辑:刘遄,审核员:暂无
为您推荐一些与本文相关的文章:
- 腾讯多个产品出现大规模宕机?
- 在 Linux 上模拟系统负载
- 微软重金收购GitHub的背后逻辑原来是这样的
- 文件访问和共享的方法介绍
- 如何使用Octave 在Ubuntu上科学处理音频
- 《游戏数据分析的艺术》pdf电子书免费下载
- 台积电代工收入颇丰!总裁拿5200万元
- 云计算将进入新的阶段
- 卖报啦~卖报啦~Lumina 桌面环境 1.0 正式发布
- 稳定性横跨全球的 Cron 服务是怎么设计的?
转载必需保留本文链接:https://www.linuxprobe.com/chapter-06.html
本文依据CC-BY-NC-SA 3.0协议发布,竭诚为读者提供Linux视频教程、Linux学习资料以及红帽考试资料等优质学习资源。