首页 > 系统相关 >Linux下的硬链接和软链接

Linux下的硬链接和软链接

时间:2024-04-09 22:44:07浏览次数:29  
标签:文件 链接 索引 user Linux 节点

前言

在 Linux 文件系统中,一个文件被分成两个部分:元数据(metadata)与用户数据(user data)。元数据为文件的附加属性,如索引节点(Inode)、文件大小、文件创建时间、文件所有者等。元数据中并不包含文件名,文件名仅仅是为了方便用户使用。Linux 文件系统为每一个保存在磁盘分区中的文件(无论什么类型)都分配一个索引节点号(Inode Number),索引节点号是文件在一个文件系统中的唯一标识,不同文件所对应的索引节点号是不相同的;用户数据,即文件数据块(data block),文件数据块中以二进制的形式记录着文件的真实内容。

ls -i # 查看索引节点号

软链接

也叫做符号链接,相当于Windows下的快捷方式,链接文件中存储的是源文件的位置,当源文件位置移动了、名称修改了,删除了,链接文件都会失效。链接文件和源文件是不同的 索引节点号。

ln -s user.txt softlink_user.txt # 对 user.txt 创建软链接

硬链接

ln user.txt hardlink_user.txt # 对 user.txt 创建硬链接

在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

硬链接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该文件的索引节点有一个以上的链接。只删除一个链接并不影响索引节点本身和其它的链接,只有当最后一个链接被删除后,文件的数据块及文件的链接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬链接文件均被删除。

总结

硬链接 软链接
索引节点号 硬链接文件和源文件指向相同的索引节点号 软链接文件和源文件指向不同的索引节点号
文件属性 硬链接没有任何标识,因为硬链接文件和源文件是相对独立的(删除不影响其它链接) 软链接在 Linux 中进行了明确的标识
对目录进行链接 不支持 支持
跨越文件系统 不支持 支持
对不存在的文件进行链接 不支持,硬链接要求文件必须存在(即 inode 必须存在) 支持,软链接可以对一个不存在的文件名 filename 进行链接,当使用 vim 对软链接文件进行编辑的时候,Linux 会自动新建一个文件名为 filename 的文件

参考

Linux 硬链接与软链接
详解 Linux 中的硬链接与软链接

标签:文件,链接,索引,user,Linux,节点
From: https://www.cnblogs.com/strongmore/p/18049916

相关文章

  • 1、Linux基础
    1.centos安装2.磁盘分区表示方法 1、2、3、4:主分区,最多4个主分区,后数据为逻辑分区主分区可以激活,但一个硬盘只能激活一个主分区被激活的主分区就是用来引导操作系统的主分区 扩展分区:/dev/hda3或hda43.Linux中常见文件系统类型centos7默认使用的文件系统XFS:日志......
  • Linux常用命令
    目录一、pwd-查看当前工作目录二、cd-切换工作目录1.将用户的工作目录更改到其他位置2.绝对路径与相对路径(1)绝对路径(2)相对路径 3.案例三、ls-列表显示目录内容1.表现形式2.常用形式3.ls-l 4.通配符5.示例 四、alias-设置别名五、du-统计目录及文件空间占用......
  • 肖恩带你看C语言·编译和链接
    来咯来咯,又见面咯,看看编译和链接的知识,了解一下就好,不必深究~~~运行环境运行环境是指运行编译后的C语言程序所需的硬件和软件环境。硬件环境:包括CPU、内存、硬盘等物理设备,这些设备提供了程序运行所需的硬件资源。软件环境:主要是指操作系统和相关的库文件。操作系统提供......
  • ArchLinux-dwm
    之前装arch和dwm的时候都没有记录,现在慢慢更新对dwm的定制优化吧换源yarnnpmyay都要记得换源#yarnyarnconfigsetregistryhttps://registry.npm.taobao.org软件安装截图yay-Sflameshotvim/opt/dwm6.4/config.hstaticconstchar*flame[]={"flameshot","g......
  • [observe]面向Fedora Linux 40和Fedora Rawhide用户的安全警告(翻译)
    所有版本RedHatEnterpriseLinux(RHEL)均不受此漏洞影响。2024年3月30日补充:我们已确认FedoraLinux40beta版确实包含两个受影响的xz库版本——xz-libs-5.6.0-1.fc40.x86_64.rpm和xz-libs-5.6.0-2.fc40.x86_64.rpm。目前,Fedora40Linux似乎没有受到实际恶意软件攻击......
  • Linux的常用命令
    shell?shell是Linux系统中运行的一种特殊程序,位于用户与内核之间shell的作用shell是一种“翻译官”角色,接受用户输入的命令,然后去解释去翻译命令,最后传递给系统内核去执行用户登录Linux系统时,会自动加载一个shell程序(shell开机自动启动)BashBash是Linux系统中默认使用的she......
  • 【Linux】虚拟化技术docker搭建SuitoCRM系统及汉化
    CRM系统CRM(CustomerRelationshipManagement,客户关系管理)系统是一种用于管理和优化企业与客户关系的软件工具。在商业竞争激烈的现代社会中,CRM系统已成为许多企业提高销售、增强客户满意度和实现持续增长的重要工具。本文将介绍CRM系统的概念、功能以及其在企业中的重要性......
  • 【Linux】编写并运行Shell脚本程序操作实例
    关于Shell脚本的介绍:Shell脚本是一种用于自动化任务和简化常见操作的脚本语言,通常用于Linux和Unix环境中。Shell脚本允许用户通过编写一系列命令和逻辑语句来执行一系列任务,从而提高了工作效率和自动化水平。以下是关于Shell脚本的详细介绍:1.基础概念:Shell本身是一个用C......
  • 随手分享的APP链接,可能会让你“大型社死”
    早晨上班路上,你在地铁百无聊赖地刷着短视频,看到一则好笑的,随手分享给了你的公司“饭搭子”,并配上了一串“哈哈哈哈哈哈”。晚上下班路上你再次打开视频APP,发现首页弹窗给你推荐了一组“可能认识的人”,通过昵称你发现10个推荐里,7个都是你同事,其中一个正是你的“饭搭子”。你......
  • 交通规划四阶段法:基于 Python 的交通分布预测算法复现 - 附完整代码链接
    目录交通规划四阶段法:基于Python的交通分布预测算法复现-附完整代码链接我只是想使用这些代码下载代码文件代码的使用方法合作部分代码内容的展示交通规划四阶段法:基于Python的交通分布预测算法复现-附完整代码链接我这个学期有交通规划的课程。·交通规划四阶段法中第......