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

软链接与硬链接是用来干什么的呢?
为解决文件的共享使用,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 centos7环境下MySQL安装教程

    下面是“Linux CentOS 7环境下MySQL安装教程”的完整攻略。 1. 安装步骤 1.1 下载MySQL 首先需要到MySQL官网下载对应版本的MySQL安装包。 1.2 解压缩 将下载好的MySQL安装包解压缩到指定目录下,可以使用以下命令: tar -zxvf mysql-8.0.23-linux-x86_64-minimal.tar.gz -…

    Linux 2023年5月14日
    00
  • Linux Centos下使用脚本安装Docker的方法

    以下是详细的攻略: LinuxCentos下使用脚本安装Docker的方法 准备工作 在开始安装之前,我们需要确保以下条件已满足: 能够以root用户身份登录。 操作系统是CentOS 7版本,且已更新到最新的稳定版。 步骤一:下载安装脚本 首先我们需要从docker官方网站上下载安装脚本: $ curl -fsSL https://get.docker.c…

    Linux 2023年5月14日
    00
  • CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)

    CentOS6.4安装配置LNMP服务器(Nginx+PHP+MySQL) 步骤一:安装Nginx 更新系统软件包 bash yum -y update 安装nginx bash yum -y install nginx 启动nginx服务 bash systemctl start nginx 验证nginx是否正确安装 在浏览器中输入服务器IP地址,如果出…

    Linux 2023年5月14日
    00
  • LINUX系统里,CENTOS和UBUNTU哪个比较好

    一、概述CENTOS和UBUNTU都是常见的Linux发行版本,两者都免费且开源,但在实际应用中,它们各有优劣,需要根据实际需求进行选择。在下面的攻略中,将介绍两者的区别、特点、优劣以及适用场景。 二、CENTOS和UBUNTU的区别与特点1. CENTOS的安全性更高,对企业级系统更适用。CENTOS是基于Red Hat企业级Linux设计的,因此在安全性…

    Linux 2023年5月14日
    00
  • vs code .net core Linux下离线安装Nuget包

    linux系统,内网环境下,使用vs code 开发.net core项目,离线安装Nuget包的方法。   本人第一次使用 vs code在linux下开发.net core项目,由于处于内网,无法通过在线安装,所以在遇见离线安装Nuget包时,耗费了一番功夫,网上也没有相关的,最后还是多个思路结合才解决的,再次分享给大家,以便有需要的人,减少耗费时间。 …

    Linux 2023年4月11日
    00
  • 解决yum安装报错Protected multilib versions的问题

    当使用yum安装软件包时,可能会遇到以下错误提示: Protectedmultilibversions: <package-name>-[version]-[release] requires [architecture] lib<name> 这是由于启用了Multilib保护机制,导致yum不能安装软件包的原因。为了解决此问题,我们…

    Linux 2023年5月14日
    00
  • Linux基础

    Linux基础 一、计算机种类 台式机 笔记本 服务器 1.服务器的作用 可以尽量避免数据不会丢失 可以24小时不间断提供服务 可以在速度上提升用户体验 2.服务器的分类 云主机服务器 ⼤企业服务器过多可能造成资源浪费,所以对服务器资源进⾏整合 之后根据付费多少分配对应资源给相应⽤户使⽤(类似于租房⼦) 物理主机服务器 机架式服务器 多⽤于服务器数量较多的⼤…

    Linux 2023年4月11日
    00
  • Linux-基本命令

    基本命令操作 cd 命令 几个特殊的目录 . 当前的工作目录 .. 上一级的工作目录 – 上一次的工作目录 ~ 当前系统登录的用户家目录 ls 命令 list 列出文件夹中的内容 ls 可选参数 可选的文件夹对象 -a # all显示出所有的文件 -l # 列出详细的文件内容 -h # 以人类可阅读的形式,输出文件大小 –full-time # 以完整的时…

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