设为首页 收藏本站
查看: 1027|回复: 0

[经验分享] Linux学习之第七课时--链接(link)文件

[复制链接]

尚未签到

发表于 2017-11-18 09:36:31 | 显示全部楼层 |阅读模式

  • 链接文件
  在linux系统中,内核我每一个新创建的文件分配一个inode(索引结点)号,文件属性保存在inode里,在访问文件时,inode被复制到内存里,从而实现文件的快速访问
  链接文件简介
  链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的方法。Linux系统中包括硬链接和软连接(也被称为符号链接)两种
  硬链接
  硬链接是一个指针,指向文件inode,系统并不为它重新分配inode,如下图,/root/a和/root/b
  文件具有相同的inode。可以使用ln命令来建立硬链接,硬链接节省空间,也是Linux系统整合文件系统的传统方式
  硬链接文件有以下两处限制

  • 不允许给目录创建硬链接
  • 只有在同一文件系统中的文件之间才能创建链接
  对硬链接文件进行读写和删除操作时,结果和软连接相同。但是如果删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容,系统把它当成一个普通文件。修改其中一个,与其链接的文件同时被修改
  软连接
  软连接也叫符号链接,这个文件包含了另一个文件的路径名,如下图所示,/root/a文件指向了/root/b文件。可以是任意文件或目录,可以链接不同文件系统的文件,和Windows下的快捷方式相似。链接文件甚至可以链接不存在的文件,这就产生一般称之为”断链”的问题,链接文件甚至可以循环链接自己
  硬链接和软连接的区别
  在Linux系统中,硬链接和软连接有以下区别

  • 硬链接记录的是目标的inode,软连接记录的是目标的路径
  • 软链接就像是快捷方式,而硬链接就像是备份
  • 软连接可以跨分区(文件系统)的链接,而硬链接由于inode缘故,只能在本分区(文件系统)中做链接
  使用链接文件
  以实例的形式在Linux系统下如何创建,使用硬链接文件和软连接文件
  使用ln命令可以创建链接文件(包括软连接文件和硬链接文件)
  硬链接文件的使用
  通过这个例子详细讲解硬链接文件的创建,以及在修改和删除源文件后硬链接文件的变化
  创建一个源文件/root/a,文件内容为life
   DSC0000.png
  创建/root/a文件的硬链接为/root/b
  查看源文件和硬链接文件属性,可以看到这两个文件的大小和其他属性都是一样的链接数有原来的1变为2
   DSC0001.png
  可以看到硬链接文件内容和硬链接内容是一样的
   DSC0002.png
  使用stat命令查看/root/a和/root/b,其inode都是656256
DSC0003.png

  修改源文件内容,可以看到硬链接文件也跟源文件改变了文件内容
DSC0004.png

  删除源文件,硬链接文件还是存在的,其文件属性的文件链接数现在为1
DSC0005.png

  删除源文件后还是可以看到链接文件内容
   DSC0006.png
  软链接文件的使用
  通过这个例子详细讲解软链接文件的创建,以及在修改和删除源文件后软链接文件的变化
  创建一个源文件/root/a,文件内容为life
   DSC0007.png
  创建/root/a文件的软链接为/root/b
  查看源文件和软链接文件属性,可以看到软连接文件容量很小,因为它只是一个指向源文件的快捷方式。还可以看到”/root/b ->a”,说明b文件的源文件是a,链接数还是1
   DSC0008.png
  查看软连接文件内容它将指向到源文件,从而看到文件内容和源文件一样
   DSC0009.png
  使用stat命令查看/root/a和/root/b,其inode是不一样的,分别是656256和710754
   DSC00010.png
  修改源文件内容,可以看到软链接文件也跟源文件改变了文件内容
DSC00011.png

  删除源文件,软链接文件还是存在的
   DSC00012.png
  由于所指向的源文件以删除,所以不能查看软连接文件的内容
DSC00013.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-408155-1-1.html 上篇帖子: python中pygame模块的Linux下安装过程 下篇帖子: 每天一个linux指令学习地址
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表