96SEO 2026-02-23 14:11 11
现软硬连接硬链接注意事项软硬链接都用来干什么如何在windows中实现硬链接

概念简述文件系统windows下的快捷方式--软硬链接的直观体现角度1文件名角度2文件inode角度3链接数如何实现软硬连接不要啥玩意都去硬链接软硬链接常见用途如何在windows中实现硬链接
我们创建了一个test.c当然我没有往里面写内容因为软硬链接和代码无关。
然后分别创建了一个软链接symbollink、硬链接hardlink使其链接test.c
本文在ext2文件系统的概念下叙述且仅对本文需要了解的知识进行叙述。
磁盘划分成许多个分区每个分区的inode独立即相同分区的inode不重复不同分区的inode可能重复这也就决定了硬链接跨越文件系统进行链接的不可实现性
大家对windows下的快捷方式肯定不陌生我们常常将一个文件执行添加桌面快捷方式的操作这个操作实际上就对应了软链接。
让我们再深入探究一下其中的奥秘
上图中左侧是我的typora.exe文件的存储位置、右侧是其对应的桌面快捷方式软链接
对如果你仔细观察其实桌面也是一个文件Desktop创建桌面快捷方式本质上就是将文件软链接一份到Desktop文件夹中当然这都是后话与今天所要探讨的并无太大关联如果感兴趣的小伙伴可以去深入了解以下。
再提一嘴为什么他们的大小和占用空间不同这和他们的data
他们的文件类型不同文件所处的位置自然不同因为创建的是桌面快捷方式放到了Desktop文件夹中文件的大小不同这是因为对于左侧的文件其内容是其本来具有的应用程序的数据而右侧的文件的内容则可以理解为一个索引这个内容就是为了让你找到左侧的源文件
上图中左侧是我的test.txt文件的存储位置、右侧是其对应的硬链接文件link.txt这里将他们放入了同一个文件夹中了
如果你这个时候去删掉他们之间的任意一个后再去打开另外一个发现内容还是没有变就好像删除的操作白做了一样这是由于硬链接的特性会在后面进行叙述不同的是如果你删除了被软链接链接文件则你会发现软链接就没有用了打不开对应的源文件
他们的文件类型相同对他们就是相同的一模一样删了一个另一个还在他们的存储大小相同因为他们都是同一个文件存储大小自然相同
综上我们先得出一个简单的小结对于软链接这个文件指向了我的源文件其内容就是我源文件的位置对于硬链接这个文件中的内容就是我的源文件内容。
这个时候可能有朋友要提出疑问那我用硬链接难道是把文件拷贝了一份不硬链接并不会拷贝文件因为开销太大相反它利用了引用计数的思想来实现链接听我娓娓道来。
而软链接的文件名我创建的时候命名为symbollink但是创建出来后却显示是symbollink
这没什么作用其实就是告诉用户这个是软链接还是硬链接linux下不采用文件名标识文件所以名字是啥自然不重要。
对就这。
如果你仔细观察就会发现硬链接文件的inode和源文件是一模一样的但是软链接的inode则不同。
文件名inodetest.c929767hardlink929767symbollink
硬链接创建的链接文件hardlink本质上就是给test.c这个文件增加了个名字实际上也是如此创建的时候会在当前目录的data
block中增加一个hardlink与929767的映射关系存入其中。
软链接创建的链接文件symbollink
test.c本质上是创建了一个新的文件而这个新文件的内容是其源文件的路径大抵是这样的可能还会有别的内容但主要内容就是路径。
test.c链接数又称为硬链接数。
是用来标记某个文件被硬链接了多少个文件又可以理解为这个inode被取了多少个别名。
由于hardlink和test.c都链接到了node929767这个文件即有两个映射关系所以该文件的链接数2
前面我们提到hardlink硬链接到了test.c这个文件但是我删除他们中的任意一个另外一个内容不会产生影响。
这是因为其内部采用了引用计数的思想。
当我删除一个文件的时候如果链接数1那么就对该链接数进行–同时删除该文件名和其inode的映射关系如果链接数1那么就删除映射关系的同时再将其对应inode标识的文件删除彻底删除你就再也找不到了。
当然你用数据恢复的手段可能还可以找得到毕竟删除数据的本质就将inode
bitmap对应位置为0这点本文就不展开讲述其属于文件系统的知识
硬链接本质上就是一种给inode取别名的方式即增加了一份新的映射关系软链接本质上就是创建了一个新的文件和touch指令区别不大当然我指的是创建文件的本质
首先你几乎是所有玩意都可以去软链接大抵是这样的只不过需要考虑到”断链“的情况也就是软链接不会强制检查链接到不存在的文件
由于不同的文件系统中inode编号允许重复所以如果跨文件系统实行硬链接就会导致链接到错误的inode所以要从根源上禁止
我们先分别在mylinkfs,test下创建一个文件结果如下:
test.c可以发现对于mylinkfs中的inode编号十分的小这是因为这个分区刚刚创建并初始化文件系统挂载所以在里面创建的文件的inode都会从低到高分配。
这也表明了他们不属于同一个文件系统。
../../home/sll/test/test.c很明显可以连接成功
不能去链接的时候他的链接数都不是1而是2甚至我该目录里面做了一些操作后链接数更大了
testlinkdir可见链接数是2。
原因很简单让我们进入testlinkdir看看
../对就是这个./搞的鬼它硬链接到的也是testlinkdir树的玩意比如./,../但是你就是不能手动去链接目录OS不让你硬链接
如果我要从/home去遍历整个目录树如果这里面我的某个硬链接链接到了/home那么就会导致这个遍历一直死循环根本出不来。
而对于操作系统它有把握拍着胸脯说我保证我的硬链接不会产生循环引用问题你能保证你的不会吗我直接给你禁掉想用没门
主要用于在文件系统中创建副本使得多个文件可以共享相同的数据和权限。
这在许多客户端/服务器环境中非常有用因为它允许客户端直接访问服务器上的主文件而不需要将副本下载到本地。
此外硬链接还可以用于确保文件的安全即使原文件被删除只要还有硬链接存在文件的数据就不会丢失。
主要用于创建指向另一个文件或中使用相同的文件时只需要在某个固定下使用软链接链接该文件这样既节省了磁盘空间又方便了文件的访问。
此外软链接还可以用于访问那些已经被删除但仍然需要引用的文件或者用于不在PATH中的二进制文件或其他资源。
PowerShell找到你当前的路径然后打开资源管理器进入对应的路径一般是C:\Users\NAME然后在该目录下右键创建一个.txt文件这一步不用Windows
//这里我们创建的源文件叫test.txt链接文件叫link.txt
PowerShell找到你当前的路径然后打开资源管理器进入对应的路径一般是C:\Users\NAME然后在该目录下右键创建一个.txt文件这一步不用Windows
//这里我们创建的源文件叫test.txt链接文件叫link.txt
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback