Linux 中 ln 软连接(-s) 和 硬连接(-d) 的区别

软连接


先说软连接,一个认为这个比较好理解,一个也是因为柿子专挑软的捏啊,哈哈,创建一个软连接的命令: 【ln -s 源文件名 软连接文件名】

使用ls命令查看文件信息可以验证一下,对文件和目录都可以创建软连接

在网上看到很多人说快捷方式这个比喻,个人认为比较形象,创建一 个软连接就是给指定的文件创建了一个快捷方式,里面只记录一个源文件的路径,使用的时候其实就是间接的使用源文件,不考虑具体的实现,从使用的层面上就这 么简单。

如果源文件删除了,这个软连接也就没有什么用了,因为他记录的路径下面已经没有文件或文件夹了,效果就和windows下面的exe都没有了,你 双击快捷方式的效果一样,正因为软连接只是记录一个路径,所以他可以跨文件系统使用。


硬连接


再说硬连接,创建一个硬连接的命令: 【ln -d 源文件名 硬连接文件名】。

在Linux里面访问的每个文件都有一个inode结点的东西,在这个东西里面有一个连接计数,软连接的时候不涉及这个东西,如果对一个 文件创建一个硬连接,则这个文件对应的inode的连接计数就加1,这个时候其实这个inode对应的文件有两个名称可以进行访问,这两个名称现在是一样 的,你可以使用任意一个继续创建硬连接,所以创建的硬连接和源文件是一样的,共享同一个inode,如果删除了一个则连接计数就减1,删不删除文件是根据 连接的计数值来确定的,如果为0了,就删了,否则,删除只是连接计数减1。

硬连接不能跨文件系统创建,并且只能对文件创建,不能对目录创建硬连接。

对于读写软连接和硬连接一样,都是操作同一个文件


参考资料

1、ln 软连接(-s) 和 硬链接(-d)的区别
http://blog.csdn.net/u013542440/article/details/51337313

2、linux 创建连接命令 ln -s 软链接
https://www.cnblogs.com/kex1n/p/5193826.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值