操作系统-区分文件共享的两种方式:软链接和硬链接

yizhihongxing

软链接与硬链接是用来干什么的呢?
为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。

1.硬链接(基于索引节点的共享方式)

由于linux下的文件是通过索引节点(Inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配inode。每添加一个硬链接,文件的链接数就加1。
image
image

硬链接存在的问题
当多个用户共享一个文件时,文件所有者删除了该文件,也就是删除了该文件的索引结点,那么其他用户指向该索引节点的指针就会悬空。

2.软链接(基于符号链实现的文件共享)

为了使用户b共享用户a的文件F,由操作系统创建一个LINK类型的新文件,也叫F,它被写入到用户b的目录中,以实现用户b的目录与文件F的链接。同名新文件只包含F的路径名。这样的链接方法叫符号链接(软链接)。
image

只有文件的所有者才拥有指向其索引节点的指针,而共享该文件的其他用户只有该文件的路径名,并不拥有指向其索引节点的指针。这样就避免了指针悬空的问题。

软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。

总结区别如下:

硬链接的查找速度比软链接快。

硬链接是多个指针指向一个 inode 节点,而软链接则是创建多个新的link文件,link里面存放目标文件路径。

硬链接会删除增加会改变被访问文件的链接计数,软链接不会。

硬链接无法跨分区、跨设备建立,软链接可以。

原文链接:https://www.cnblogs.com/liyaaixuexi/p/17311872.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:操作系统-区分文件共享的两种方式:软链接和硬链接 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • 在Linux系统上安装Wine的教程

    下面是在Linux系统上安装Wine的完整攻略: 安装Wine 步骤一:添加Wine软件源 在终端中输入以下命令: sudo dpkg –add-architecture i386 wget -nc https://dl.winehq.org/wine-builds/winehq.key sudo apt-key add winehq.key sudo a…

    Linux 2023年5月14日
    00
  • MongoDB数据库的安装步骤

    下面是MongoDB数据库的安装步骤完整攻略: 步骤一:下载安装包 在MongoDB官网上找到对应版本的MongoDB,然后进行下载。根据操作系统的不同,选择对应的安装包。例如,如果你使用的是Windows 64位操作系统,那就下载Windows 64 Bit安装包。 步骤二:安装MongoDB 下载完成后,运行安装包,按照提示进行安装。具体来说,可以按照下…

    Linux 2023年5月14日
    00
  • centos6超20TB磁盘的分区格式化的示例代码

    下面是“centos6超20TB磁盘的分区格式化的示例代码”的完整攻略: 1. 确认磁盘 在进行分区格式化之前,需要先确认磁盘的设备名。可以通过以下命令查看系统挂载的所有磁盘: fdisk -l 例如,假设我们有一块 30TB 的磁盘,设备名为 /dev/sdb。 2. 分区 接下来,我们需要将磁盘分为多个分区。由于 centos6 版本的 fdisk 工具…

    Linux 2023年5月30日
    00
  • linux下mysql5.7.17最新稳定版本安装教程

    以下是“Linux下MySQL5.7.17最新稳定版本安装教程”的完整攻略,分为以下步骤: 准备工作 下载MySQL官方源: $ wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 安装MySQL官方源: $ sudo rpm -ivh mysql57-comm…

    Linux 2023年5月14日
    00
  • 快速上手Linux核心命令(十):Linux安装软件

    目录 前言 rpm rpm包管理器 yum 自动化RPM包管理工具 前言 这期呢主要说一说Linux中包软件管理相关命令,这一期的命令虽然只有两个。但 软件包的安装和卸载都是我们平常最常用的,需要熟练掌握。 rpm和yum 是CentOS 主要的包软件管理。 两个命令各有用处,①yum需要互联网,yum会去网上的yum源获取所需的软件包 ② rpm 操作相对…

    Linux 2023年4月30日
    00
  • linux 系统权限 数字含义

    摘抄: sudo chmod XXX dir_name XXX是你要设置的权限代号,第一位代表Owner,第二位代表Group,第三位代表Others XXX中0代表什么都不可以,1代表可执行,2代表可读,4代表可写,如果要同时具备多项权限就把各种权限的代号加起来,可读可写就是6,可读可写可执行就是7

    Linux 2023年4月11日
    00
  • Camera | 5.Linux v4l2架构(基于rk3568)

    上一篇我们讲解了如何编写基于V4L2的应用程序编写,本文主要讲解内核中V4L2架构,以及一些最重要的结构体、注册函数。 厂家在实现自己的摄像头控制器驱动时,总体上都遵循这个架构来实现,但是不同厂家、不同型号的SoC,具体的驱动实现仍然会有一些差别。 读者可以通过本文了解各个结构体与对应的摄像头模块、SoC上控制器模块、以及他们之间接口关系,并能够了解这些硬件…

    Linux 2023年4月10日
    00
  • Linux配置C++11编译环境的方法

    下面我将为您详细讲解 Linux 配置 C++11 编译环境的方法。 1. 确认系统是否支持 C++11 在使用 C++11 编译环境之前,需要先确认操作系统是否支持 C++11 标准。可以使用以下命令查看当前 gcc 的版本: gcc –version 如果 gcc 版本在 4.8.1 以上,则系统已经支持 C++11 标准。如果 gcc 版本低于 4.…

    Linux 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部