linux目录的软链接文件,【linux系统命令】文件目录的硬链接软链接

(由于以下内容纯经手打,有些过于白话,且省事尽量无配图,不明之处敬请留言!)

(和windows系统的快捷方式、文本页面中的超链接一样,linux上文件和目录也有类似的链接方式,使用中我们自然也有这样的需求,如服务脚本的链接,程序目录的链接,使得文件目录的结构更清晰,便于使用和维护。)

一、什么是硬链接

硬链接(hard link)又称为实际链接,是通过索引点来进行连接。

在linux文件系统中,系统内部读写文件过程分成三步:首先,系统找到这个文件名对应的inode编号;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读写数据。即所有的文件源数据都会有一个索引节点的编号inode,inode和数据是唯一的,但多个路径文件名指向这同一个索引节点是被允许的,也就是说,文件名只是inode的别名,其多个名字代表的都是这个数据本身,都可以作为源文件,事实上保存在数据块中的数据只有一份;

即硬链接允许一个文件拥有多个有效的路径名,这意味着可以用不同的文件名访问同样的内容,并修改其中一个则真实数据便修改了。删除一个链接并不影响索引节点本身的数据和其它的链接,只有最有一个链接被删除时,文件的真实数据块和文件名的链接才会被释放。也就是说,从使用的层面上,文件真正删除的前提是与之相关的所有硬链接都被删除。

注意

上面我们说删除最后一个链接,数据块上的数据和文件的链接才会被释放,而不是说真实的数据块被删除,为什么?事实上,我们的数据是存储在文件系统的一个个数据块上,也就是我们说的block超级快,通过索引链接indoeinode关联,被我们关联识别并读写操作,但系统本身只通过inode来识别文件,如果这种关联释放了,我们自然也就找不到数据了,所以我们在系统上操作“rm -rf”删除的只是文件链接,其真实数据还在,这也是在数据不覆盖重写的情况下,很容易恢复的原因。

文件的索引节点inode信息可以使用命令查看:start inode.txt

硬链接有两个限制:

不允许给目录创建硬链接,这是因为目录文件没有inode索引节点,它其实就是一个目录的列表,包含文件名和与之对应的inode节点;

只有在同一文件系统中的路径才能创建链接文件,毕竟同源,当然要在一起,就好比同一分区内mv移动文件很快的,只是换了个关联的链接路径,但如果是mv到另一个分区,那是很慢的,因为真实数据也要复制过去;其inode就发生改变了;还怎么做到所有链接数据同步啊!

二、什么是软链接

软连接(soft link)又称为符号连接,是一个包含了另一个文件路径的文件,可以指向任意文件和目录,也可以跨不同的文件系统。

也就类似于windows的“快捷方式”,删除软连接,并不会删除指向的源文件,如果删除了源文件,则软连接会出现断链,也就是windows上说的“快捷失效”,linux上是找不到源文件;

如此,“-s”参数是创建软连接,可以发现两个文件的inode节点不同,且两个文件数据都是唯一的,也就是删除就是删除了;

但是123.txt-link文件,属性“lrwx”有个“l”,这个意思是链接文件,也可以认为是重定向吧,当源文件删除,则找不到源文件。如果是在字符界面,则“断链”的源文件文件呈跳动的红色效果。

(好的就分享到这里,如果您有高见或好的分享,记得留言哦!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值