首页 > 其他分享 >软连接与硬链接

软连接与硬链接

时间:2024-07-03 18:52:59浏览次数:13  
标签:文件 文件系统 连接 源文件 权限 inode 链接

创建命令:
    ln -s <target> <link_name>
    其中:
    <target> 是目标文件或目录的路径,可以是相对路径或绝对路径。
    <link_name> 是要创建的软链接的名称,可以是相对路径或绝对路径。
    
特点:笔试面试填空题和简答题:软链接的特点
    文件指向: 软链接是一个特殊类型的文件,它包含了指向另一个文件或目录的路径名。
    大小和权限: 软链接本身的大小很小,只是一个包含路径的文本文件,不占用目标文件的inode。软链接有自己的权限设置。
    更新和删除: 如果原始文件被删除或者移动,软链接仍然存在,但是指向的路径失效,称为“损坏的软链接”。
    跨文件系统: 软链接可以跨越文件系统,可以链接到任何地方(但是关于系统兼容西有可能无法查看文本中的数据),甚至是不存在的路径。
    软链接文件不支持跨windows文件系统创建,就算能跨文件系统拷贝,但是链接已经失效

软链接本身的大小很小,只保存指向源文件的路径,不保存文本数据

image


软链接,使用软链接查看文本数据,其实就查看源文件的数据,是同一份数据,不管修改那个文件,数据都会实时更新

image


软连接可以跨文件系统,但是关于系统兼容西有可能无法查看文本中的数据

image


把软链接跨文件系统拷贝,还是支持正常链接查看源文件

image


软连接的权限是自己独立设置的和源文件无关

image


源文件被移动或者删除,软链接会实现,变成"损坏的软链接"

image


创建命令:
    ln source_file target_link

    其中:
    source_file 是现有文件的路径,即要创建硬链接的源文件。
    target_link 是新硬链接文件的路径或文件名。
    
特点:
    inode链接: 硬链接是指向文件 inode 的指针,实际上是文件系统中相同的文件,只是有多个文件名指向它。
    没有单独的权限: 硬链接与原始文件共享相同的 inode 和权限设置,因此无法单独设置权限。
    文件系统内部: 硬链接只能在同一个文件系统内创建,不能跨越文件系统创建。
    硬链接文件不支持跨windows文件系统创建,就算能跨文件系统拷贝,但是链接已经失效
    删除和文件计数: 只有当所有硬链接都被删除时,文件的数据块和 inode 才会被释放。
硬链接文件和源文件的大小一样大,硬链接就是完全拷贝源文件的数据

image


硬链接也一样,不管是修改源文件,还是硬链接文件,数据都是同步更新

image


没有单独的权限: 硬链接与原始文件共享相同的 inode 和权限设置

image


硬链接文件的计数器
计数器:计数文件公有几个硬链接,又因为硬链接的特点是保存了文本数据,所以源文件也是本身的硬链接 所以文件的硬链接个数至少为1,如果是0,文件就是被彻底删除
删除源文件,硬链接还是能正常使用,因为它本身不经保存源文件的路径也保存了文件的数据

image


硬链接能重复创建硬链接,而且计数器+1

image


硬链接文件不支持跨windows文件系统创建,就算能跨文件系统拷贝,但是链接已经失效

image


(3)inode

inode(index node 索引节点的缩写)是Linux文件系统中用来存储有关文件或目录的元数据信息的数据结构(结构体)。
每个文件或目录都有一个唯一的 inode,它包含了文件或目录的元数据信息如下:
    文件类型和权限:例如,文件是普通文件、目录、符号链接等的类型,以及文件的读写执行权限。
    文件创建者和所属组:即文件的所有者和所属组的用户和组ID。
    文件的大小:以字节为单位的文件大小。
    文件数据的存储位置:如果文件较小,inode 直接包含文件的数据;如果文件较大,inode 包含指向数据块的指针。
    时间戳:包括文件的创建时间、最后访问时间和最后修改时间。
    硬链接计数:指向该 inode 的硬链接数目。

标签:文件,文件系统,连接,源文件,权限,inode,链接
From: https://www.cnblogs.com/hhail08/p/18282375

相关文章

  • Modbus转Profibus主站网关连接温控表通讯技术
    Modbus转ProfibusDP主站网关(XD-MDPBM20)是实现不同通讯协议设备之间联系的重要组件。在工业自动化领域中,温控表是常见且必要的设备,它可以用于监控和调节温度,保障生产过程的稳定性。本文将详细探讨如何利用Modbus转ProfibusDP主站网关(XD-MDPBM20)连接温控表,实现设备间的高效通讯。......
  • linux_centos镜像下载及百度网盘分享链接
    1.Centos镜像国内最全下载地址CentOS官方下载地址:https://www.centos.org/download/Centos国内下载源http://man.linuxde.net/download/CentOShttp://mirrors.btte.net/centoshttp://mirrors.cn99.com/centos (希网)http://mirrors.sohu.com/centos (搜狐)http://mirrors.aliyun.......
  • Profibus DP主站转Modbus网关连接伺服与电机通讯
    ProfibusDP主站转Modbus网关连接伺服与电机通讯在工业自动化领域,将ProfibusDP主站转Modbus网关(XD-MDPBM20)用于连接伺服与电机通讯是一种常见且重要的应用方式。当使用ProfibusDP主站转Modbus网关(XD-MDPBM20)连接伺服与电机进行通讯时,可以参考以下步骤进行配置和操作:1.什么是Pro......
  • Pycharm远程连接GPU(内容:下载安装Pycharm、GPU租借、配置SSH、将代码同步到镜像、命令
    目录windows下载安装pycharmGPU租借网站GPU租借GPU选择选择镜像充值然后创建镜像创建成功复制SSH登录信息远程进入镜像在Pycharm中进行ssh连接新建SFTP配置SSH复制ssh根据复制的信息填写ssh配置测试连接将代码同步到远程镜像上设置mappings将本地代码上传到镜像配......
  • Azkaban-3.84.4集群部署——安装篇(文章结尾附带网盘下载链接)
    目录Azkaban的集群规划Azkaban的集群部署第一步处理azkaban-db-3.84.4:第二步配置azkaban-exec:启动azkaban-exec:激活azkaban-exec:第三步配置WebServer(在bigdata1中)(1)修改azkaban.properties文件,修改的部分如下:(2)修改azkaban-users.xml文件,添加用户(用户密码可自行设......
  • 使用EF 连接 数据库 SQLserver、MySql 实现 CodeFirst
    1.新建项目,下载Nuget安装包创建项目需要注意几点,如果是基于.netframework的项目需要选择相应版本的EF,如果是跨平台则选择EFCore版本。我这里选择的是.netframework版本。红框里面是实现EFCodeFirst需要的包。对应的版本:EntityFramework6.3.0MySql.Data6.8......
  • 【AKS+Redis】AKS中客户端(ioredis)遇见Azure Redis服务Failover后链接中断的可能性
    问题描述在AKS中连接Redis,当遇到AzureRedis升级或者Failover时,NodeJS应用中使用ioredissdk在很长一段时间内无法恢复和AzureRedis服务端的连接,对于这种想象的可能性推断。 问题解答使用AzureCacheforRedis时,一个服务器是主节点,另一个服务器是副本。主节点通常负......
  • web登陆注册页面留言框-连接服务器
    一.成品展图二.前端代码 1.注册regist.html<!DOCTYPEhtml><html><head> <metacharset="utf-8"><title>注册</title><metacharset="utf-6"><linkrel="stylesheet"type="text/css"hr......
  • Profibus DP主站转Modbus网关连接智能化电表通讯
    ProfibusDP主站转Modbus网关(XD-MDPBM20),是实现不同工业通信协议之间互联互通的设备,主要将ProfibusDP协议转换为Modbus协议,实现数据的双向传输。通过ProfibusDP主站转Modbus网关(XD-MDPBM20),可以有效实现现场设备和控制系统之间的无缝连接,提高生产效率。ProfibusDP主站转Modbus网......
  • 使用nodejs ws模块连接websocket服务器Unexpected response code: 403错误解决
    使用浏览器连接websocket服务器时一切正常,但是使用nodejs ws模块连接时一直报Unexpectedresponsecode:403错误,查了很多帖子都没说明白,最后自己试着一点一点对比模拟浏览器请求头,最终解决问题,解决后代码如下://TODO不加这个,会报403错误constoptions={headers:{......