软链接和硬链接对比

news/2024/9/18 12:39:52/文章来源:https://www.cnblogs.com/coder-shane/p/18204202

介绍

软链接和硬链接是两种不同的文件链接方式。当源文件被修改时,软\硬链接文件也会相应的修改;当软\硬链接文件被修改时,源文件也会被修改。所以,软链接和硬链接在功能上是相同的,根据使用场景选用链接方式

image

软硬链接查询,第一个字母d表示目录,-表示文件(硬链接的表示跟文件相同),l(表示软连接)

特征对比

  1. 软链接
    • 指向目标文件:是一个独立文件,包含了指向的目标文件\目录的路径。存的是路径,不是内容。
    • 可以指向目录
    • 可以跨文件系统:可以指向不同文件系统的文件或者目录,常见的文件系统有: ext4、NTFS、FAT32等。
    • 删除影响
      • 删除源文件,软链接变成“悬空链接”,即无效链接
      • 删除软链接不会影响目标文件
  2. 硬链接
    • 指向相同数据块:指向目标文件数据块的另一个目录项,即C语言中的,多个指针指向同一个内存,亦或者可称为多扇门可以去到同一个地方。
    • 不能跨文件系统
    • 不能指向目录
    • 删除影响
      • 删除源文件,不会影响硬链接。硬链接指向的是数据块,所以只要数据块不被删,就没问题,即直到所有硬链接都被删除。
      • 删除硬链接不会影响其他硬链接和源文件。
  3. 磁盘差异

软链接和硬链接在磁盘占用方面差距不大,但是了解后对它们之间的区别会有更加深刻的理解。

假设有一个大小为1 GB的文件。

  • 软链接:生成一个独立文件(软链接文件),里面存储了该文件的路径,但这个软链接文件一般都非常小,几字节到几百字节。
  • 硬链接:在数据块上再增加一个目录项,几乎不占用额外磁盘空间。

从软连接和硬链接的磁盘占用差异可以看出,硬链接特别适合作为文件备份,因为不占用额外磁盘空间,并且备份文件会自动与源文件同步,直接访问磁盘块,不需要通过路径查找,访问速度更快。

使用方法

# 软链接,ln是link的缩,-s是symbolic的缩写,所以软链接也称为符号链接
ln -s file_path linked_file_path
# 硬链接
ln file_path linked_file_path

使用场景

  1. 软链接

    • 需要跨文件系统,链接目录。(硬链接不能做到)
    • 创建快捷方式
    • 希望路径明确,易于管理和更新
  2. 硬链接

    • 节约磁盘空间,避免重复数据
    • 希望保持数据一致性
    • 在同一文件系统内提高访问效率
    • 数据备份

    [!NOTE]

    为什么软连接更适合作为快捷方式?因为如果采用硬链接,当源文件被删除时,硬链接仍然能访问该磁盘块,那么这个快捷方式仍然能起作用。如果采用软连接,当源文件被删除时,软连接会失效,快捷方式自然也就不能用了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/710083.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch中forward的理解

使用pytorch的时候,模型训练时,不需要使用forward,只要在实例化一个对象中传入对应的参数就可以自动调用 forward 函数1 class Module(nn.Module):2 def __init__(self):3 super(Module, self).__init__()4 # ......5 6 def forward(self, x…

东莞mes系统:提高生产效率的利器

东莞作为中国制造业的重要基地之一,拥有众多制造企业,其中不乏一些领先的MES系统供应商。这些MES系统供应商致力于为东莞的制造企业提供智能制造解决方案,帮助企业提高生产效率、降低生产成本、提升产品质量。 MES系统在东莞的制造企业中被广泛应用,成为提高生产效率的利器…

Python作图三维等高面

在一维空间下,我们要表示密度时可以给出一个二维的函数y=f(x),画出来是一条二维平面上的曲线。在二维空间下,我们要表示密度可以使用一个三维的函数z=f(x,y),画出来是一个三维空间的曲面。而三维空间下,密度表示是一个四维的函数:q=f(x,y,z),这个密度我们在三维空间已经…

大数据的崛起,Figma如何“活”下来并且四年增长将近100倍

随着互联网的蓬勃发展,数字化时代的到来,数据库规模在短短四年内增长了近100倍,这个数字足以让人们震惊和惊叹。而在这样一个激烈竞争的时代,如何让自己的产品在激烈的市场竞争中“活”下来成为了所有创业者和企业家们共同面对的问题。而Figma作为一个备受瞩目的在线协作设…

鸿蒙HarmonyOS实战-Stage模型(卡片数据交互)

🚀一、卡片数据交互 HarmonyOS卡片数据交互是指在基于鸿蒙操作系统的设备上,卡片界面之间进行数据的传输和交互。 HarmonyOS的卡片是一种轻量级的应用界面,可以在设备的屏幕上显示信息和提供操作功能。卡片可以包含各种类型的内容,如文本、图片、按钮、输入框等,并可以根…

CentOS7 图形界面\命令行启动切换(7.9)

1.关于/etc/inittab网上很多都说用着个配置 cat /etc/inittab大概意思就是说,这种设置方式已经不再使用2.建议使用systemctl用法systemctl get-default # multi-user.target #相当于init 3 # graphical.target #相当于init 6 #直接设置 systemctl set-default multi-user.ta…

LCA(最近公共祖先)

LCA 就是最近公共祖先,表示为 \(\operatorname{lca}(a, b)\),它的求解方法主要有两种。 倍增法 这是最常用的一种可以动态求 LCA 的算法。时间复杂度为 \(O(\log{n})\)。 中心思想 这个算法中有两个特殊的数组:\(depth[i]\) 和 \(fa[i][k]\)。 \(depth[i]\):\(i\) 点的深度…

CentOS7 图形界面管理(7.9)

1.关于/etc/inittab网上很多都说用着个配置 cat /etc/inittab大概意思就是说,这种设置方式已经不再使用2.建议使用systemctl用法systemctl get-default # multi-user.target #相当于init 3 # graphical.target #相当于init 6 #直接设置 systemctl set-default multi-user.ta…

vue2的混入mixin使用

前言 vue3中不再推荐使用mixins ! 在 Vue 2 中,mixins 是创建可重用组件逻辑的主要方式。尽管在 Vue 3 中保留了 mixins 支持,但对于组件间的逻辑复用,使用组合式 API 的组合式函数是现在更推荐的方式。 参考文档:https://juejin.cn/post/7033424132427481101 https://seg…

序列化与反序列化

引用DLL文件:Newtonsoft.Json.dll 路径:D:\yonyou\U9CE\Portal\bin\ C#实体类List<Departments> deptss = new List<Departments>();private void Department_Load(object sender, EventArgs e){strUri = TexURI.Text;strToken = GetToken(TexURI.Text);//Depart…

我的第一台电脑

这篇文章是对我的第一台电脑的回忆,大家感兴趣可以看看。【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18032053 出自【进步*于辰的博客】大家在看这篇文章的时候,可能会觉得我跑题了。当然,的确有些跑题。而…

Origin2022安装出现“试用期已结束”的解决方法

有小伙伴反馈,在安装Origin2022中文版出现弹窗:试用期已结束。…… 无法继续安装,这个问题该如何解决呢? origin 2022 中文版解决方法: 1、返回电脑桌面,点击左下角【Win标】按钮,在弹出列表中点击【设置】选项 2、点击【时间与语言】3、将【自动设置时间】点选关闭 …