Linux文件属性--软连接和硬链接

news/2024/3/29 17:18:40/文章来源:https://blog.csdn.net/adminstate/article/details/129240987

文章目录

  • 软链接
  • 硬链接
  • 软链接和硬链接的区别

软链接

软链接(Soft Link)又叫符号链接(Symbolic Link ),是linux特殊文件的一种,文件类型为l,它的数据是它所链接的文件或目录的路径。软链接可以跨磁盘和 
分区,也可以为目录建立软链接。删除源文件或修改源文件名称,就会破坏链接关系。导致根据已有的软连接文件定位不到源文件。

在这里插入图片描述
创建软链接文件: ln -s 原文件 目标文件
创建软链接目录: ln -s 原目录 目标目录
注意:创建软链接的源文件是需要存在的,要创建的软链接文件是不能存在的,是要用ln -s 命令创建的
演示文件软连接:
[root@localhost test]# cat sourceFile
测试软链接和硬链接的数据
[root@localhost test]# ln -s sourceFile softLinkFile
[root@localhost test]# ls -li
总用量 4
33590019 lrwxrwxrwx. 1 root root 10 2月 24 20:48 softLinkFile -> sourceFile
33590020 -rw-r–r–. 1 root root 37 2月 24 20:38 sourceFile
[root@localhost test]# cat softLinkFile
测试软链接和硬链接的数据
通过测试可以发现 第一列的 数字表示 的是文件的inode, softLinkFile 和 sourceFile 的 inode(index node)索引节点不一样,说明它们不是同一个文件。权限列前面的l表明了,文件类型和普通文件不一样,属于软连接文件特有的。权限列后面的1表示 文件引用次数。
演示目录软链接
[root@localhost test]# mkdir sourceDir
[root@localhost sourceDir]# touch file.txt
[root@localhost test]# ln -s sourceDir softLinkDir
[root@localhost test]# ls -li
总用量 4
33590022 lrwxrwxrwx. 1 root root 9 2月 24 21:12 softLinkDir -> sourceDir
33590012 drwxr-xr-x. 2 root root 22 2月 24 21:11 sourceDir
[root@localhost softLinkDir]# ls
file.txt
演示修改目录名称
[root@localhost test]# mv sourceDir modifysourceDir
[root@localhost test]# ll
这里出现了被软连接的源文件出现闪烁
再访问softLinkDir
[root@localhost test]# cd softLinkDir
-bash: cd: softLinkDir: 没有那个文件或目录
说明破坏了链接关系。需要重新建立链接关系
在原链接还存在的情况下,不能再创建同一目录下目标文件名称相同的链接,需要先删掉才行。
[root@localhost test]# ln -s modifysourceDir softLinkDir
ln: 无法创建符号链接"softLinkDir": 文件已存在
[root@localhost test]# rm softLinkDir
rm:是否删除符号链接 “softLinkDir”?y
再重新创建链接关系
在这里插入图片描述

硬链接

硬链接(hard link)是指通过索引节点(Inode)来进行连接。在Linux(ext2,ext3,ext4)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(Index Inode)简称Inode,即在系统中文件的编号。
文件的硬链接是一个指向inode的目录项。硬链接从表面上来说就是一个文件,但是该文件是基于原始文件创建的链接文件。硬链接与源文件指向相同的inode,因此其数据也是完全一样的。
在Linux文件系统中,多个文件名指向同一个索引节点(inode号相同)是正常且允许的。这种情况的文件就称为硬链接。
如果存在硬链接,删除原文件将不会删除文件的数据。通过硬链接仍然能够访问文件的数据。这是因为当有目录项指向inode的时候,inode会增加引用计数。通常情况下引用计数是1,当有一个硬连接时为2,再有一个硬链接的时候就变成了3。
当我们删除普通文件(无硬链接)的时候,首先会删除目录项中的内容,然后将inode的引用计数减1,如果此时inode中引用计数为0,则删除该inode,同时删除相关联的数据。如果非0,则只删除目录项,而不删除相关内容。所以,如果存在硬链接则可以正常访问文件内容。
在这里插入图片描述
数据演示:
创建硬链接文件: ln 原文件 目标文件
[root@localhost test]# ln sourceFile hardLinkFile
[root@localhost test]# ls -li
33590020 -rw-r–r–. 2 root root 37 2月 24 20:38 hardLinkFile
33590020 -rw-r–r–. 2 root root 37 2月 24 20:38 sourceFile
[root@localhost test]# cat hardLinkFile
测试软链接和硬链接的数据
通过测试发现 两者的inode是相同的,都是33590020,表明它们指向的是同一个inode表示的数据。文件的引用计数为2.表明存在一个硬链接。其实源文件也是一个硬链接文件(文件的引用计数为1),我们手动创建的硬链接文件和源文件没有什么不同。
如何查找文件的所有硬链接文件:
find . -inum inode_number #把源文件也查询到了
[root@localhost test]# find . -inum 33590020
./sourceFile
./hardLinkFile
注意:不能创建目录硬链接
[root@localhost test]# ln modifysourceDir hardLinkDir
ln: “modifysourceDir”: 不允许将硬链接指向目录
原因:在目录中除了文件相关内容外,还有一个指向父目录的目录项,"…"目录。如果我们在其它目录创建该目录的硬链接,那么该内容就会被改写,从而导致混乱。

软链接和硬链接的区别

1.  ln -s 创建软连接, ln 创建硬链接
2. 目录不能创建硬链接, 且不能跨分区系统创建
3. 软连接支持文件和目录, 且能跨分区系统, 常用
4. 硬链接文件与源文件 inode 相同, 而软连接是不同的
5. 删除软链接文件和硬链接文件, 对源文件没有任何的影响
6. 删除源文件, 软链接失效, 硬链接无影响(还可以访问内容)
7. 删除源文件和所有的硬链接文件, 整个文件会被真正的删除
8. 软链接类似于windows的快捷方式功能,常用。硬链接提供了防止文件被误删的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_75076.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动手学深度学习(第二版)学习笔记 第三章

第三章 线性神经网络 代码:d2l-zh/pytorch/chapter_linear-networks 3.1 线性回归 3.1. 线性回归 — 动手学深度学习 2.0.0 documentation 解析解 线性回归的解可以用一个公式简单地表达出来,这类解叫作解析解(analytical solution&…

git在工作中的正常使用

开发A和B功能后进行发版。。 一、拉取代码 git clone http://ntc.ntsvars.com:8090/lvweijie/test.git二、开发功能A任务 创建A任务本地分支 #创建A分支,并切换A分支 git checkout -b A三、开发A任务 四、提交A功能文件到本地分支 git add .五、添加提交A功能备…

AcWing3485. 最大异或和

先看题目: 说实话,我看到这道题就想用滑动窗口,但是滑了一下发现不太对啊,如果我用滑动窗口的话,那么最后肯定是一个固定长度为m的窗口在持续计算,区间长度小于m的区间的异或和肯定会被遗漏。然后我就想怎么…

FSP:Flow of Solution Procedure (CVPR 2017) 原理与代码解析

paper:A Gift From Knowledge Distillation: Fast Optimization, Network Minimization and Transfer Learningcode:https://github.com/HobbitLong/RepDistiller/blob/master/distiller_zoo/FSP.py背景深度神经网络DNN逐层生成特征。更高层的特征更接近…

决策树在sklearn中的实现

目录 一.模块sklearn.tree 二.建模基本流程 三.DecisionTreeClassifier重要参数 1.criterion 2.random_state & splitter 3.剪枝参数max_depth 4.剪枝参数min_samples_leaf & min_samples_split 5.max_features & min_impurity_decrease 6.class_weight …

Python IDE:对于 Python 初学者来说,最好的 IDE 是什么?

Python 是科技界最简单、使用最广泛的编程语言之一。它是一种高级通用编程语言,强调代码可读性并使用面向对象的方法。Python可以用来完成很多任务,包括网站开发、软件开发、 自动化 和数据分析 专业开发人员使用Python开发各种流行的软件程序&#xff0…

深入理解Spring MVC上

Spring MVC 是一种基于 Spring 框架的 Web 框架,它提供了一种基于 Model-View-Controller(MVC)的设计模式,用于构建 Web 应用程序。在 Spring MVC 中,Controller 接受并处理 HTTP 请求,并将其转发给适当的 …

多表left join 慢sql问题

作为个人记录,后续再填坑a对p是1对多 ,p对llup 1对多SELECTa.id,p.id,t1.id FROMliv_series_product aINNER JOIN liv_product p ON p.id a.product_idLEFT JOIN ( SELECT llup.id, llup.product_id, llup.room_id FROM liv_live_user_product llup WHERE llup.ro…

Tomcat部署及多实例

Tomcat部署及多实例一、Tomcat简介1、Tomcat核心组件2、什么是JSP二、Tomcat数据流向1、Tomcat数据流向2、Tomcat-Nginx数据流向三、Tomcat服务部署安装1、安装jdk包2、解压Tomcat所需的安装包3、在/etc/profile添加环境变量4、启动服务并查看5、在浏览器网页验证6、创建用户&a…

为什么硬件性能监控很重要

当今的混合网络环境平衡了分布式网络和现代技术的实施。但它们并不缺少一个核心组件:服务器。保持网络正常运行时间归结为监控和管理导致网络停机的因素。极有可能导致性能异常的此类因素之一是硬件。使用硬件监控器监控网络硬件已成为一项关键需求。 硬件监视器是…

优化知识管理方法丨整理零碎信息,提高数据价值

信息流时代,知识成集合倍数增长,看似我们学习了很多知识,但知识零碎无系统,知识之间缺乏联系,没有深度,所以虽然你很努力,但你发现自己的能力增长特别缓慢,你需要整理知识将零散的知…

蓝桥杯:染色时间

蓝桥杯:染色时间https://www.lanqiao.cn/problems/2386/learning/?contest_id80 问题描述 输入格式 输出格式 样例输入输出 样例输入 样例输出 评测用例规模与约定 解题思路:优先队列 AC代码(Java): 问题描述 小蓝有一个 n 行 m 列…

std::chrono笔记

文章目录1. radio原型作用示例2. duration原型:作用示例3. time_point原型作用示例4. clockssystem_clock示例steady_clock示例high_resolution_clock先说感觉,这个库真恶心,刚接触感觉跟shi一样,特别是那个命名空间,太…

vue2 diff算法

diff是什么 diff 算法是一种通过同层的树节点进行比较的高效算法 其有两个特点: ♥比较只会在同层级进行, 不会跨层级比较 ♥在diff比较的过程中,循环从两边向中间比较 diff 算法的在很多场景下都有应用,在 vue 中,作用于虚拟 dom…

预备2-CMD常用命令

CMD常用命令 先学简单常用的, 其余的要用在学 打开Cmd窗口 Win键R> 输入Cmd回车鼠标点击开始 > 附件>Cmd打开一个窗口,在地址栏输入cmd 操作目录 1.dir 查询当前目录有哪些文件 2.cd.. 上一级目录 3.cd e: 切换到E盘 4.d: 直接去d盘 5.cd /d e:abc 直接去E盘的abc目…

2023年房地产行业研究报告

第一章 行业发展概况 房地产业是指以土地和建筑物为经营对象,从事房地产开发、建设、经营、管理以及维修、装饰和服务的集多种经济活动为一体的综合性产业,是具有先导性、基础性、带动性和风险性的产业。主要包括:土地开发,房屋的…

解决AAC音频编码时间戳的计算问题

1.主题音频是流式数据,并不像视频一样有P帧和B帧的概念。就像砌墙一样,咔咔往上摞就行了。一般来说,AAC编码中生成文件这一步,如果使用的是OutputStream流写入文件的话,就完全不需要计算时间。但在音视频同步或者使用A…

debian 部署nginx https

我是flask 处理请求单进程, 差点意思 , 考虑先flask 在往下走 一:安装nginx 因为我是debian 系统,所以我的建议是直接 sudo apt-get install nginx 你也可以选择在官网下载, 但是我搭建ssl 的时候安装openssl非常的麻…

【无标题】(2019)NOC编程猫创新编程复赛小学组真题含参考

(2019)NOC编程猫创新编程复赛小学组最后6道大题。前10道是选择填空题 略。 这道题是绘图题,没什么难度,大家绘制这2个正十边形要注意:一是不要超出舞台;二是这2个正十边形不要相交。 这里就不给出具体程序了…

数睿通2.0数据服务功能模块发布

文章目录引言API 目录API 权限API 日志结语引言 数睿通 2.0 之前基本完成了数据集成和数据开发两大模块,也因此得到了一些朋友的帮助和支持,在此由衷的表示感谢,你们的支持便是我们更新的最大动力! 目前,数据服务模块…