Linux 硬链接与符号链接

Linux hard link(硬链接)与symbolic link(软链接、符号链接)

什么是 symbolic link? 什么是hard link? 两者有何区别? 创建这两种links的命令是什么?

是什么

一个文件可以同时归属于多个不同的目录或者有多个名字,相应的操作称为链接。symbolic link(符号链接,软连接)相当于与Windows的快捷方式,是源文件的路径文件,是区别于源文件的另外一个文件;hard link(硬链接)和源文件其实是同一个文件。如果把储存在磁盘上的数据看成是一个房间,源文件看成是这个房间的门的话,那么符号链接就是记载着怎么到达这个房门的路线的一个文件,相当于是一个与房间独立的一个东西——地图;而硬链接则是这个房间的另一扇门。

区别

1、符号链接是另外一个文件,占实际内存,沿用上面的比喻(如果把储存在磁盘上的数据看成是一个房间),符号链接就是另外一个新的房间;硬链接则不开辟新房间,不占内存空间。

2、由1可知,符号链接是一个新文件、新房间,因此它具有与原来房间不一样的inode;(假设硬链接就是房门,房门与房门之间是无差别的,房间才有inode,且一个房间的房门共享房间的inode)硬链接(新的房门)与源文件(原来的房门)具有相同的inode。

3、除删除操作外,其他对符号链接的操作实际都是对原文件的操作,删除符号链接的话,只是把一份路线图毁了,原来的房间依然存在,删除;除删除外,其他对硬链接的操作实际也是对源文件的操作,删除硬链接的话,只是封了一个房间的一扇门,另外一个门依然能用,房间依然存在。

4、删除原文件的话:原文件的inode和所占的内存将会释放,符号链接将会失效;对硬链接来说,这是原文件和硬链接的地位几乎是相等的,只删除源文件的话,同样也是值封闭了一个门,原房间还存在一个门,原文件的的inode和内存不会释放,只有当原文件和所有硬链接都删除以后,原文件的inode和内存才会被释放,相当于一个房间一个门都没有了才会被销毁。

5、符号链接可以跨文件系统,硬链接不可以。

6、符号链接可以链接目录,硬链接不可以。

7、符号链接可以链接一个不存在的文件名,硬链接不行。

创建命令

创建符号链接的命令:ln -s source destination;创建硬链接的命令:ln source destination。

区分

下面是 l os*.txt命令的输出。如何从此输出解读出哪些文件互为hard links, 哪些文件是symbolic link?
-rw-r–r-- 2 usr00 usr00 50 2020-04-28 20:04 os_hardlink.txt
lrwxrwxrwx 1 usr00 usr00 6 2020-04-28 20:04 os_symlink.txt -> os.txt
-rw-r–r-- 2 usr00 usr00 50 2020-04-28 20:04 os.txt

从上面的输出解读硬链接与符号链接:前十个字符为文件属性字段,第一个字符代表文件类型。第二个文件os_symlink.txt,“l”——“link”,表明为符号链接文件,同时符号链接文件会用符号“->”指出符号链接文件指向的原文件os.txt;第一、三个文件os_hardlink.txt、os.txt互为硬链接,验证性的我们可以看到,它们的权限、内存等信息均一致。

参考资料:
https://blog.csdn.net/qq_28897525/article/details/80657465
https://blog.csdn.net/digitalkee/article/details/107525344

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值