当前位置: 首页 > news >正文

Linux---软连接与硬链接

              文件构成及软连接、硬连接详解

一、简介

大家在windows下可以看到我们桌面上有一些程序。双击它就可以运行了。在我们桌面上的图标只是一个快捷方式,它真正的运行路径是在其他的磁盘中。这个就是我们的windows中链接。我们的Linux系统中也存在类似的形式,在Linux中的链接形式有两种,一种叫做软链接,一种叫做硬连接。在讲解之前,大家需要先知道一些文件的基本知识。

Linux系统中一个文件由目录项(struct dirent)inode数据块组成。

目录项:包括文件名inode节点号

Inode:包含文件的一些信息。

例如,inode号,文件类型,文件大小等待。

数据块:文件具体内容存放的地方。

当我们查看一个文件的时候,linux系统的运行过程如下图。

1、首先根据文件名,找到我们目录项中的inode号。

2、通过inode号进入我们inode表中,查找到该文件中一些信息。

3、然后通过inode表中的保存的数据区的指针,读取我们相应数据区的内容。

硬链接

本质:是给我们的文件取别名

与源文件直接关联。修改一个,另一个同时被修改删除一个另一个不会有影响。

Linux系统中规定,只有在文件的打开次数为0(即文件这个时候没有打开),并且文件的硬连接数为0,此时文件才会被删除

特点:

(1)不占用硬盘空间

(2)不能对目录操作

(3)不能跨文件系统

Ext4

FAT   u盘

NTFS  

命令ln  源文件名  硬链接文件名

例如:

由上面接口可以知道,我们新建的硬链接文件,只是给源文件起了一个别名,他们共用同一个inode号。

软链接(符号链接)

本质:类似于我们windows的快捷方式,用来记录我们目标的路径

特点:

(1)占用磁盘空间 

       (2)可以对目录操作 

       (3)可以跨文件系统

命令:ln -s 源文件 软链接文件 

可以发现我们新建的hello2.c实质是我们hell1.c的快捷方式。并且他们的inode号不一样。

原理图:

从图上可以看出硬链接和软链接的区别:

1:硬链接原文件和新文件的inode编号一致。而软链接不一样。

2:对原文件删除,会导致软链接不可用,因为软连接存储是路径,而硬链接不受影响。

http://www.dtcms.com/a/22957.html

相关文章:

  • 【PowerBI】使用形状地图创建地图可视化
  • less-8 boolen盲注,时间盲注 函数补全
  • 瑞萨RA-T系列芯片ADCGPT功能模块的配合使用
  • key-value---键值对
  • --- Mysql事务 ---
  • github在同步本地与远程仓库时遇到的问题
  • Exadata环境ORA-00603 AND ORA-27515报错的分析处理
  • leetcode刷题-动态规划05
  • PHP 可用的函数
  • Groovy语言的学习路线
  • 有关表单autocomplete = “off“ 失效问题解决方案
  • 如何commit后更新.gitignore实现push
  • DeepSeek-V3 技术报告
  • watermark解释
  • 功能测试与接口测试详解
  • Redis单点部署及exporter的安装
  • vue非组件的初学笔记
  • 单片机中有FLASH为啥还需要EEROM?
  • DeepSeek技术实践:从基础到高阶的模型交互方法论
  • 编译安装php
  • Maven Home Path配置Bundled (Maven 3)和Use Maven wrapper解释
  • 《深度学习》——调整学习率和保存使用最优模型
  • 2025年入职/转行网络安全,该如何规划?网络安全职业规划
  • 滑动窗口-无重复字符的最长子串
  • Jenkinsdebug:遇到ERROR: unable to select packages:怎么处理
  • 小爱音箱连接电脑外放之后,浏览器网页视频暂停播放后,音箱整体没声音问题解决
  • 笔试-果园施肥
  • LeetCode 热题 100_单词搜索(60_79_中等_C++)(深度优先搜索(回溯))(初始化二维vector的大小)
  • zotero翻译文献每行开头有奇怪数字
  • 数组和对象深浅拷贝