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

软链接与硬链接是用来干什么的呢?
为解决文件的共享使用,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面试问题

    四个常见的Linux面试问题。 刚毕业要找工作了,只要是你找工作就会有面试这个环节,那么在面试环节中,有哪些注意事项值得我的关注呢?特别是专业技术岗位,这样的岗位询问一般都是在职的工程师,如何在面试环节更好地理解面试官的问题,我们一起往下看吧。 在学校学习也好,在培训机构或者网络在线学习也好,无论是通过那种途径,经过很长一段时间学习马上就要实践了,但是在面试…

    2023年4月8日
    00
  • Linux文件的复制、删除和移动命令使用说明

    下面是关于Linux文件的复制、删除和移动命令使用说明的完整攻略: 复制命令cp cp命令用于将一个或多个文件或目录复制到指定位置,同时也可以给目标文件或目录重命名。 命令格式 cp [选项] 源文件 目标文件 常用选项 -r:递归复制目录及其中的所有内容; -p:保留文件的权限、所有者、时间戳和链接信息; -f:当目标文件已经存在时,强制覆盖目标文件; -…

    Linux 2023年5月14日
    00
  • CentOS6.7系统中配置LNMP环境

    接下来我会详细讲解如何在 CentOS6.7 系统中配置 LNMP 环境的完整攻略。 背景 LNMP 是 Linux + Nginx + MySQL + PHP 的简称,是一款常用的 Web 服务器搭建方案。在 CentOS6.7 系统中搭建 LNMP 环境,可以为网站的开发和运维提供便利。 步骤 1. 更新系统 在开始搭建 LNMP 环境前,建议先更新系统…

    Linux 2023年5月14日
    00
  • Oracle 11g for Linux CentOS 5.2 详细安装步骤分享(图解教程)

    Oracle 11g for Linux CentOS 5.2 安装教程 前置条件 在开始安装 Oracle 11g 数据库之前,请确保以下条件得到满足: 安装好 CentOS 5.2 操作系统 确保硬件配置符合 Oracle 11g 系统需求 安装好必须的软件包和组件 根据需要正确配置网络和主机名 安装 Oracle 11g 第一步:创建 Oracle 用…

    Linux 2023年5月14日
    00
  • VMware下ubuntu扩展磁盘空间的方法

    下面我将详细讲解如何在VMware虚拟机中扩展Ubuntu系统磁盘空间。 第一步:在VMware中扩展虚拟硬盘 首先需要在VMware中将虚拟硬盘进行扩展,具体步骤如下: 在VMware虚拟机中,选择要扩展的虚拟硬盘,点击虚拟机设置(VM -> Settings)。 在虚拟硬盘设置中,选择“硬盘”,点击“扩展(Expand)”按钮,按照需要扩展的大小进…

    Linux 2023年5月24日
    00
  • 详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)

    详解CentOS5.5下搭建PHP环境(最佳的LAMP环境) 前言 本篇攻略旨在能够帮助使用CentOS5.5的用户快速搭建PHP环境,达到最佳的LAMP环境。在前期准备完成后,整个搭建流程并不需要很长的时间。 准备工作 在开始搭建之前,你需要准备以下材料: CentOS5.5软件安装源 Apache服务安装包 PHP服务安装包 MySQL服务安装包 你可以…

    Linux 2023年5月14日
    00
  • 408操作系统-4.1文件系统基础 习题总结

    考点:文件的打开和读取 打开文件的过程:打开操作本质上是使用了open这个系统调用,参数如下图所示。操作系统通过文件的路径在外存中找到了这个test.txt文件所在的目录,继续找该文件的目录项(FCB),一个文件只有一个目录项。然后将这个目录项调到内存中,系统中有一个系统打开文件表,里面存放的是系统中所有打开文件的目录项,新调到内存中的目录项就会被复制到这个…

    Linux 2023年4月18日
    00
  • 在CentOS7上搭建本地GitLab服务器

    搭建本地GitLab服务器的完整攻略如下: 1. 安装必备软件 首先要确保你的CentOS7操作系统上已经安装了curl和policycoreutils包,如果没有安装则可以通过以下命令进行安装: sudo yum install curl policycoreutils openssh-server openssh-clients 2. 安装GitLab …

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