Linux软硬链接


一、建立连接

ln可以用来建立链接,不过ln是建立硬链接,然后若是加选项-s则为建立软链接(ln -s)
建立软链接 ln -s 源文件 目标文件(链接名)
在这里插入图片描述
若是链接的是一个不存在的文件,则会出现指向错误
在这里插入图片描述
执行正常软链接能过执行但是执行错误软链接则不能执行
在这里插入图片描述
ln建立一个硬链接只是对这个文件取了一个别名,他们的inode是相同的
在这里插入图片描述
内核记录了硬链接链接个数,Inode为530047的硬链接个数为2,普通文件建立时它的硬链接数是1因为没有其他的硬链接指向这个文件。
而我们在删除文件时干了两件事情:1.在目录中将对应的记录删除,2.将硬连接数-1,如果为0,则将对应的磁盘释放。
删除链接可以使用unlink或者直接用rm(链接也是一个文件)删除

二、软链接

软链接是一种类似快捷方式的,就是在桌面上建立的快捷方式,建立了软链接这个软连接也是一个文件有自己的inode编号,软链接数据块中存的是它指向文件的地址(路径),当点击这个软连接时就是去执行这个地址对应的文件内容。软链接是一个独立的文件,当一个软链接删除时,不会影响它指向路径中的内容,但是若是将指向路径文件删除之后,软链接没有指向,这个软链接就会失败,找不到源头了,就像是桌面快捷方式删除不会对存储在电脑中的应用造成影响,但是若是电脑中应用删除,那么软链接再去查找就找不到对应软件!软链接建立是方便用户去到文件绝对路径去查找这一个软件,更加方便了用户只需要点击软链接就能执行同样的结果!

三、硬链接

硬链接就是相当于给一个文件取别名,硬链接不是一个独立的文件,他没有独立的inode编号。真正找到磁盘上文件的并不是文件名,而是inode。 其实在linux中可以让多个文件名对应于同一个inode。 硬链接两个文件一切都相同就是换了一个文件名,在上一级目录下,它的数据块中,inode与文件名的映射数量+1,而这也侧面证明了文件名不在当前目录下,不然同一个inode不会存在两个文件名。硬链接就是在特定目录的数据块中新增文件名和指向文件的inode编号的映射关系,每一个inode可以被多个文件名指向,统计硬链接数通常使用引用计数方式统计。增加一个硬链接就是在目录下将新的文件名和inode映射拷贝一份。所以任何一个文件,无论是目录还是普通文件都有Inode,每一个inode内部都有一个引用计数统计硬链接的数量目录中保存的是文件名:inode和文件名之间的映射关系.

四、软硬链接应用场景

软链接应用场景
就是一个快捷方式
系统中存在大量的软链接,用ls -/lib64/. -l查看
在这里插入图片描述
软链接应用场景最常见就是建立快捷方式
硬链接应用场景
创建一个目录,这个目录的硬连接数是2,而创建一个普通文件它的硬链接数是1.为什么?
在这里插入图片描述
因为任何一个目录下都有两个文件.文件和..文件
.代表当前文件,而..代表上一目录文件
在这里插入图片描述
因为.与当前目录的inode编号是一样的,而..和上一目录的inode编号一样,所以.是当前目录,..是上一级目录,所以.就相当于这一目录的一个别名,就是它的一个硬链接,而再在这一目录建立一个硬链接它的硬链接数会变为3 (理论上).每一个目录下都有...文件着更方便与路径的切换。Linux系统不允许对目录建立硬链接因为会形成环路问题,可能会出现系统及bug。所以当你在对目录建立硬链接时会阻止对目录建立硬链接!
硬链接通常应用于对路径来回切换

  • 15
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值