操作系统—软链接和硬链接的介绍、实现、区别

这篇具有很好参考价值的文章主要介绍了操作系统—软链接和硬链接的介绍、实现、区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言 

有时候我们希望给某个文件取个别名,那么在 Linux 中可以通过硬链接 和软链接的方式来实现,它们都是比较特殊的文件,但是实现方式也是不相同的。

   首先简单介绍一下,Linux文件系统的索引节点(inode) 

  • 索引节点,也就是 inode,用来记录文件的元信息,比如 inode 编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘的位置等等。索引节点是文件的唯一标识,它们之间一一对应,也同样都会被存储在硬盘中,所以索引节点同样占用磁盘空间

二、硬链接和软链接的实现

ln命令 用来为文件创建链接,链接类型分为硬链接和软链接两种,默认的链接类型是硬链接。如果要创建软链接必须使用"-s"选项。

        硬链接是多个目录项中的「索引节点」指向一个文件,也就是指向同一个 inode,但是 inode 是不可能跨越文件系统的,每个文件系统都有各自的 inode 数据结构和列表,所以硬链接是不可用于跨文件系统的。由于多个目录项都是指向一个 inode,那么只有删除文件的所有硬链接以及源文件时,系统才会彻底删除该文件(源文件会有一个引用计数Links来标记)。 

         软链接相当于重新创建一个文件,这个文件有独立的 inode,但是这个文件的内容是另外一个文件的路径,所以访问软链接的时候,实际上相当于访问到了另外一个文件,所以软链接是可以跨文件系统的,甚至目标文件被删除了,链接文件还是在的,只不过指向的文件找不到了而已。文章来源地址https://www.toymoban.com/news/detail-601081.html

三、软、硬链接的区别

  1. 与硬链接不同的是,软链接确实是一个新文件,当然它具有不同的索引节点号;而硬链接并没有建立新文件。
  2. 软链接没有硬链接的限制,可以对目录文件做软链接,也可以在不同文件系统之间做软链接。
  3. 用ln -s命令建立软链接时,源文件最好用绝对路径名。这样可以在任何工作目录下进行软链接。而当源文件用相对路径时,如果当前的工作路径与要创建的软链接文件所在路径不同,就不能进行链接。
     
  4. 软链接不增加源文件的Links值,硬链接会增加源文件的Links值,(Links值可以用 stat + 文件名查看)

到了这里,关于操作系统—软链接和硬链接的介绍、实现、区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】软连接和硬链接:创建、管理和解除链接的操作

    什么是软链接 软链接(Symbolic Link),也称为符号链接,是包含了源文件位置信息的特殊文件。它的作用是间接指向一个文件或目录。如果软链接的源文件被删除或移动了,软链接就打不开了。 什么是硬链接 硬链接(Hard Link)指通过索引节点来进行链接。在Linux系统中,每个文件都有一

    2024年02月05日
    浏览(27)
  • 【Linux操作系统】Linux中的进程和线程的概念、区别和实现的细节

    在Linux中,进程和线程是操作系统中两个重要的执行单位。它们是对程序运行时的抽象概念,用于管理和调度计算机资源。 进程是正在运行的程序的实例。它是操作系统分配资源和调度执行的基本单位。每个进程都有自己独立的内存空间,包含代码、数据、堆栈等。进程还包

    2024年02月14日
    浏览(39)
  • 文件操作介绍及C语言实现通讯录管理系统3.0最终版(文件操作版本)

    上一篇文章我们学习了动态内存开辟的相关知识点,并用动态内存函数优化了我们的通讯录,但通讯录还有需要改进的地方,比如,正常情况下的通讯录,应该可以一直保存联系人信息,而不是退出就清空了,这就需要我们实实在在的保存下来一个通讯录。 接下来我会给大家

    2023年04月08日
    浏览(40)
  • 从头开发一个RISC-V的操作系统(三)编译与链接

    目标:通过这一个系列课程的学习,开发出一个简易的在RISC-V指令集架构上运行的操作系统。 这个系列的大部分文章和知识来自于:[完结] 循序渐进,学习开发一个RISC-V上的操作系统 - 汪辰 - 2021春,以及相关的github地址。 在这个过程中,这个系列相当于是我的学习笔记,做

    2024年04月09日
    浏览(38)
  • Linux文件(系统)IO(含动静态库的链接操作)

    fopen打开文件,fclose关闭文件 fwrite操作(写文件) fwrite函数从 ptr 里将 nitems 个大小为 size 字节的数据写进定 stream 里 hello_w.c 文件 这里我们将会在此路径得到一个写有 5 行 hello fopen 的 myfile.txt 文件,如下gif: fread操作(写文件) fread 不会在字符串末尾添加 null 终止符( \\0

    2024年04月14日
    浏览(35)
  • 欧拉操作系统和linux区别

    centos和Linux区别? linux与centos的区别与联系: 1、centos是基于linux建立的操作系统。 2、linux属于内核系统,只有终端命令界面,无图形界面。 3、centos同时拥有终端命令界面和图形界面。 4、linux和centos都是属于开源系统。 一般来说,我们平时说Linux指的是Linux系统内核,而cen

    2024年02月05日
    浏览(40)
  • 初识Linux操作系统,与windows的区别

    1、Linux操作系统 学习Linux之前,必须知道什么是操作系统。了解操作系统之前得先知道什么是系统,什么是计算机系统。 1.1系统 系统就是由很多部分组成的整体,并且各部分相互作用,相互影响,以此达到某些功能。就像平时所用的微波炉,包含了电源、磁控管、烹调腔、

    2024年02月07日
    浏览(29)
  • Centos与Ubuntu、Anolis操作系统的区别?

    DNS 全局配合和网卡局部配置 systemd 239中systemd-resolve已被重命名为resolvectl 1、最简单的方法 使用 resolvconf 命令设置,通过此命令永久设置dns 注意: 修改完成后,必须通过resolvconf -u生效,此时会在/etc/resolv.conf中添加dns配置并生效。 生效后,通过resolvectl status查询不到此配置生

    2024年01月25日
    浏览(32)
  • 介绍一些操作系统— CentOS 系统

    CentOS 系统 CentOS 是 Linux 发行版之一,是免费的、开源的、可以 重新分发 的开源操作系统。 CentOS Linux发行版是一个稳定的,可预测的,可管理的和可复现的平台,源于 Red Hat Enterprise Linux(RHEL)依照开放源代码规定释出的源码所编译而成。 自 2004 2004 2004 年 3 3 3 月以来,Cen

    2024年02月13日
    浏览(31)
  • 主流操作系统介绍

    主流操作系统介绍 Windows :由微软(Microsoft)开发和维护,是个人电脑市场占有率最高的操作系统。目前最新的版本包括Windows 10以及更新的Windows 11。 macOS :苹果公司(Apple Inc.)为Macintosh系列个人电脑设计的操作系统,最新版本包括 macOS Monterey、Ventura等。 Linux :一系列开源

    2024年01月18日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包