如何理解linux软连接,深刻理解Linux的软连接和硬连接

一直没有深刻了解过连接这块的知识,昨晚有个朋友问我这问题,一会儿激发了个人兴趣。今天早上过来看了看鸟哥的书而后在stackoverflow上找了一番,感受本身如今的理解到位了,起码这样理解容易记忆。先来作个实验,在咱们的用户目录下,创建一个测试文件夹,而后新建一个文件,并建立这个文件的软连接和硬连接。以下: html

vim file1 #新建文件

ln -s file1 file1.soft #软连接

ln file1 file1.hard #硬连接

紧接着,我偶们看下这三个文件的具体信息: node

3263d8e06acd4b31b0b0559d.html

咱们发现软连接的文件属性是l,而硬连接和文件同样,都是-,而且软连接的文件比较小,而硬连接文件大小和原文件同样。紧接着,咱们修改下file1文件,而后接着看文件信息: vim

3263d8e06acd4b31b0b0559d.html

咱们发现,修改完file1后,file1.hard的修改时间也同步发生变化,可是file1.soft的文件时间信息没有发生变化。咱们再修改下file1.soft文件,而后查看文件信息,一样发现file1和file1.hard文件的时间信息发生了改变,而file1.soft文件时间信息仍然没有改变。道理先不讲,继续来。 测试

Linux童鞋他只认识数字,其余的啥都不懂,因此在使用Linux的时候,咱们不少地方都对应一个数字,好比进程号、权限值等等,文件在Linux中一样也是经过数字来标识的,这个数字就叫文件的索引节点(inode),每一个文件都有一个惟一的索引节点。咱们能够经过“ls -i”来查看文件的inode节点信息,以下: spa

3263d8e06acd4b31b0b0559d.html

咱们惊奇的发现file1和file1.hard的inode节点值是同样的,这个时候不知道你是否是恍然大悟,由于他们的inode值同样,那Linux在更新文件的时候会根据inode去找到相应的文件而后更新,而每次更新都会找到两个文件。 .net

最后来一句话总结软连接和硬连接: unix

软连接:至关于快捷方式,能够为全部文件创建软连接。 code

硬连接:至关于给文件起了个别名,连接文件和源文件实际上是同一个文件。不能用于目录。 htm

### Linux连接与硬链接的区别 #### 索引节点 (inode) 在深入探讨之前,先了解索引节点的概念。Linux 文件系统中的每个文件都关联有一个唯一的 inode 编号,该编号指向实际的数据块位置以及存储有关文件的信息,如权限、大小时间戳等[^3]。 #### 硬链接特性 硬链接实际上是指向同一 inode 的多个名称。这意味着当创建一个硬链接时,并不会创建新的数据副本;相反,会增加原文件的链接计数。删除源文件并不会影响其他硬链接的存在及其可访问性,因为它们共享相同的 inode 底层数据[^1]。 对于硬链接有如下特点: - 不可以跨分区创建; - 仅能针对现有文件创建; - 删除原始文件不影响其它硬链接; ```bash ln source_file hard_link_name ``` #### 连接(符号链接) 相比之下,连接更像是 Windows 下的快捷方式。它包含目标路径而非直接指向 inode。因此即使目标对象被移除,只要路径有效,链仍然保持不变—尽管此时尝试打开将会失败。此外,由于其本质为独立实体,所以支持跨越不同磁盘分区甚至网络驱动器的情况[^4]。 以下是关于连接的一些要点: - 支持对文件或目录进行创建; - 创建成本较低,只记录了目标的位置信息; - 如果移动或重命名了源文件,则需更新相应的连接以维持有效性; ```bash ln -s target_path symbolic_link_name ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值