首页 > 其他分享 >符号链接和硬链接

符号链接和硬链接

时间:2024-09-29 20:47:12浏览次数:5  
标签:文件 符号 t1 link inode 链接

硬链接

硬链接其实就是一个文件的别名

我们看到下面这张图

ln t1 hard_link 这个命令表示我们给文件t1创建了一个硬链接hard_link

然后可以看到他们两个指向的inode编号(675970, 最左端的数字)是一样的,说明他们是同一个文件,然后在看到一个数字 2 ,这个数字是硬链接的计数,初始为1,就像是t2一样,它只有一个硬链接,其实就是它本身

1

在看到这张图,我们先是向t1写入hello, hard_link居然也是hello, 然后我们重新向hard_link写入world, t1也变成了world, 这更说明了他们是同一个文件了
2

在看到这张图,我们删除了hard_link, 发现t1的硬链接计数变成了1
3

只有当硬链接的计数变成0时,存储在磁盘上的文件才能够被删除

还需要注意的是仅当关闭所有文件描述符时,方可删除一个已打开的文件,这是因为一个进程打开一个文件,获得到文件描述符时,就已经获得了访问对应inode的能力,即访问磁盘上的文件的能力,所以这时候不能删除这个打开的文件

硬链接的创建和删除

  • 命令行创建 ln file hard_link

  • 系统调用创建
    5

  • 系统调用移除
    6

也可以使用remove()系统调用进行移除,本质上也是个文件

符号链接

符号链接其实就相当于快捷方式

看到下面这张图,我们使用 ln -s t1 symbolic_link 为t1创建了一个符号链接

然后可以看到符号链接指向的是t1, 并且他的inode与t1的不同,说明符号链接也是一个区别于链接目标的文件,独立占有一份空间,不像硬链接,它适合链接目标享有同一份空间

7

我们在看到下面这张图,我把符号链接移动到另一个目录里,发现符号链接失效了,这说名符号链接无法定义到t1文件了,这是因为我们链接时的路径使用的是相对路径
8

在看到下面这张图,我们定义符号链接时,用的是绝对路径,然后在把符号链接移动到其他目录,发现符号链接仍然有效
9

符号链接的创建和删除

  • 命令行创建 ln -s file symbolic_link

  • 系统调用创建
    10

  • 系统调用移除
    6

也可以使用remove()系统调用进行移除,本质上也是个文件

但使用符号链接的路径名作为函数参数时,要注意该函数是否会对符号链接解引用

对比

重要性

  • 硬链接:

    • 真正的文件指向: 硬链接直接指向文件的 inode,因此它们共享相同的数据块。这意味着,删除任何一个硬链接都不会影响文件的实际内容,除非所有链接都被删除

    • 链接计数: 文件的链接计数会随着硬链接的创建和删除而变化,这使得文件在物理存储上的存在更加稳定和重要。

  • 符号链接:

    • 指向路径: 符号链接只是指向另一个文件的路径,而不是直接指向文件的 inode。因此,如果目标文件被删除,符号链接将变为无效的悬挂链接
    • 无链接计数: 符号链接不维护链接计数,这使得它们在某种程度上对目标文件的存在不那么重要

灵活性

  • 硬链接:

    • 跨文件系统限制: 硬链接只能在同一文件系统中使用,因为它们依赖于相同的 inode。不同文件系统中的 inode 结构和分配方式不
    • 不能链接目录: 硬链接不能链接到目录,以防止循环引用和复杂的文件系统结构。这样可以避免出现死循环情况,导致文件系统的复杂性和潜在错误
  • 符号链接:

    • 跨文件系统支持: 符号链接可以跨越不同的文件系统,允许用户在不同存储位置之间创建快捷方式,这种灵活性在管理文件和目录时极其有用

    • 可以链接目录: 符号链接可以指向目录,使得在复杂的目录结构中导航变得更容易,用户可以创建更复杂的文件系统布局

标签:文件,符号,t1,link,inode,链接
From: https://www.cnblogs.com/dylaris/p/18440665

相关文章

  • Adobe Animate AN2024电脑动画程序下载安装(附百度链接)
    目录简介软件特点下载推荐硬件配置简介AdobeAnimate,是Adobe公司开发的一款专业多媒体创作和电脑动画程序。它的前身是AdobeFlashProfessionalCC,自1996年首次发布以来,经历了多次更名和升级,现已成为动画制作、交互式内容设计等领域的重要工具。AdobeAnimate不仅支持......
  • pbootcms后台UEditor编辑器默认给magnet、ed2k等链接加http://的解决问题
    在PbootCMS中,使用UEditor编辑器添加磁力链接(magnet:)或电驴链接(ed2k:)时,编辑器会自动添加http://前缀,导致链接无法正常使用。可以通过修改UEditor编辑器的相关文件来解决这个问题。解决方法步骤1:修改UEditor编辑器文件打开文件:打开core/extend/ueditor/dialogs/link/link.ht......
  • PbootCMS模板如何调用友情链接
    在PbootCMS中,使用友情链接标签可以方便地输出指定分组的友情链接。下面是一个详细的示例,展示了如何使用该标签以及如何控制输出的内容。友情链接标签示例1.基本用法{pboot:linknum=3gid=1}<ahref="[link:link]"target="_blank">[link:name]</a>|{/pboot:link}......
  • Windows下的宝藏软件!(附下载链接)
    虽然是迫于在创作优质内容的压力,但是,分享的软件还是走心的,至少每个软件都是一名老程序员用了很久的效率神器。以下软件偏重于日常使用,都不算过分小众的类型,还是希望有一款能打动您!分享软件:1、Everything--下载链接;2、微软Todo--微软应用商店下载;3、OneNote--微软应用商......
  • Pbootcms详情页链接的html后缀如何去掉
    在PBootCMS中,去除详情页链接的 .html 后缀可以通过修改配置文件来实现。具体步骤如下:步骤1:修改配置文件打开配置文件:打开 core/convention.php 文件。找到并修改配置项:找到大约第37行的配置项 'url_rule_suffix'。示例代码假设原有配置如下://URL地......
  • MD语言 里链接图片大小的设置
    用md写博客时,引用的图片有时候很大,显示效果不美观。使用markdown语言图片大小设置可以是:图片链接后面直接加上=200X或=200X300注意等号前面有个空格使用标签,图片大小设置可以是:数值形式:width="200"或width="200x",height="300或height="300x",固定尺寸可同时指定宽和高......
  • pbootcms的网站被黑了被挂马了 生成无数的灰产链接该怎么办?
    针对PbootCMS系统被灰产入侵并植入大量灰产链接的问题,可以采取以下步骤来处理和防范:处理步骤1.恢复网站程序方法一:使用备份恢复如果有最近未被黑的程序备份,直接恢复备份文件。通过FTP或其他备份工具恢复备份文件。方法二:重新安装最新版程序如果没有备份,可以保留 d......
  • !!!史上最全深度学习环境安装包【文末附链接】
    配置深度学习环境是一个十分复杂的工程,里面牵扯到非常多的库和工具,而且这些库和工具的版本之间还有很多的依赖关系。深度学习框架(如PyTorch)和相关库(如NumPy、Pandas)有许多依赖,确保这些依赖的版本兼容性对于避免运行时错误至关重要。由于网络带宽和服务器位置的限制,一些深度......
  • PbootCMS生成的sitemap.xml中增加tag标签链接
    要在PBootCMS中实现在sitemap.xml中包含标签(tag)链接,可以通过修改相关模型和控制器来实现。以下是详细的步骤和代码示例:步骤修改SitemapModel类在 SitemapModel.php 中增加获取指定分类标签的方法。修改SitemapController类在 SitemapController.php 中增加处理......
  • W外链平台怎么样?短链接使用稳定么?
    W外链平台是一个提供短网址服务的平台,它具备多项功能和技术优势。根据用户评价和平台介绍,以下是其主要特点:功能特性:W外链平台具备短网址生成核心技术,支持防红防封功能,数据统计追踪,自定义跳转,以及活码功能。多方面设置:提供短域名方便分享,并支持地区定向、访问频率控制、不同切......