linux软链接和硬链接的区别

1 创建软链接和硬链接

如下图所示,一开始有两个文件soft和hard。使用 ln -s soft soft1创建软链接,soft1是soft的软链接;使用ln hard hard1创建硬链接,hard1是hard的硬链接。可以看到软链接的文件类型和其它3个文件的文件类型是不一样的,软链接的文件类型是l开头的。

2 区别

2.1inode号是不是一样

软链接和原文件inode号不同,硬链接和原文件inode号相同。

inode是操作系统对一个文件的唯一标志,inode不同,那么说明两个文件就是不同的文件。使用stat查看soft和soft1的inode号,可以看出来两个文件的inode号是不一样的,soft和soft1是两个独立的文件。soft1作为soft的软链接,文件内容是源文件的路径。

使用stat查看hard和hard1的inode号,发现两者的inode号是相同的,并且hard和hard1的Link都是2。说明硬链接不是一个独立的文件,硬链接是原文件的一个别名,两者指向同一个inode,只不过这个inode的引用计数都是2。

2.2原文件删除之后的反应

如下图所示,删除hard和soft,软链接显示为红色,为无效的软连接;硬链接还是有效的。因为软链接和原文件是两个独立的文件,所以源文件可以删除;而硬链接是原文件的别名,并且引用计数是2,所以删除硬链接只是删除文件名而已,文件内容同并没有真正删除,此时hard1的Link变为1。

hard和soft删除之后,再创建同名的文件。软链接还是可以链接到新创建的soft,因为软链接是通过文件路径来找原文件的,所以可以关联上;硬链接无法关联,因为两者的inode号是不一样的,可以看到hard和hard1两个的大小也是不一样的。

2.3是不是可以跨文件系统链接

软链接可以跨文件系统链接,硬链接不可以。

什么是不同的两个文件系统,可以通过mount查看不同文件系统的挂载位置,使用cat /proc/filesystems也可以查看当前系统支持的文件系统类型。

当跨文件系统创建硬链接的时候,提示错误信息,不能跨设备创建硬链接。

2.4是否可以链接文件夹

软链接可以链接文件夹,硬链接不可以。

如下图所示,打印错误信息"hard link not allowed for directory"。

2.5是否可以链接不存在的文件

软链接可以,硬链接不可以。如下图所示,硬链接链接不存在的文件时错误信息为"no such file or directory";软链接可以,但是也是无效的,因为原文件不存在。

相关推荐
..Dauntless..20 分钟前
【Linux】权限问题——拥有者、所属组和其他用户的协调
linux·运维·服务器
平行云33 分钟前
实时云渲染信创架构解析:从GPU池化到全栈适配的技术演进
linux·unity·docker·ue5·webgl·数字孪生·实时云渲染
handler0134 分钟前
【Linux】信号:内核的“敲门声”
linux·运维·服务器·c++·c·信号·signal
T1mzhou36 分钟前
ARM64 Linux 6.10内核启动流程6-psci.c和ATF/U-Boot 的电源接口
linux·服务器·c语言
ch3nyuyu1 小时前
驱动第三阶段
linux
云飞云共享云桌面2 小时前
钣金制造研发优化:不采购传统工作站,实现 SolidWorks 团队共用服务器开展三维建模
运维·服务器·网络·数据库·3d·制造
2601_967019512 小时前
服务器SSL配置要点,规避HTTPS访问异常风险
服务器·https·ssl
YUJIANYUE2 小时前
AspFox-类NetBox的ASP+Access迷你单文件服务器V202609
运维·服务器
佳&弥2 小时前
后渗透痕迹清理
服务器·windows·web安全·网络安全
xixiaoyunya2 小时前
只备份数据远远不够:服务器系统备份的完整方案与实践
服务器·网络·数据库