【hello Linux】理解文件系统

目录

创建文件的过程:

删除文件的过程:

创建目录的过程:

查看inode编号:

硬链接

软链接



Linux🌷 

我们知道文件所有数据 = 文件内容 + 文件属性信息;

未打开的文件是被存放到磁盘/固态硬盘中的;

 在这里是以磁盘为例进行说明:

磁盘是以扇区为单位进行读写的;

确定磁盘具体写入位置要知道:盘面(磁头)、磁道、扇区;

我们试着可以将磁盘想象成线性的结构:

要确定磁盘位置:盘面、磁道、扇区;

线性结构:类似数组下标;

因此我们在这要进行地址转化,类似于虚拟地址和物理地址的转换;

磁盘太大,为了方便管理;

1. 分区:将磁盘划分为几个小的区域;

2. 格式化:如果进行格式化,相当于给分区中写入了文件系统(原来的数据不存在);

为了更加方便管理,我们将分区更细小化;

 

创建文件的过程:

一个文件与一个inode编号相对应,首先在inode位图中找到第一个为0的,将其修改为1,在block位图中找到第一个为0的,将其修改为1,在inode块中写入文件所有信息,并且记录对应block块的位置,此后便可以进行数据写入操作。

删除文件的过程:

删除文件很简单,将文件对应inode的位图位置修改为0即可。

我们可以使用debugfs进行文件的恢复功能。

如果想要恢复最好不要在进行操作,避免将该文件inode位图分配给其他文件。

创建目录的过程:

目录也是文件,创建目录也如上述创建文件过程一般,不过目录的数据块中存放的是:

文件名与inode编号的映射关系!

查看inode编号:

ls命令中加上-i选项则可以查看文件inode编号;上述红色框框起来的便是文件inode编号;

Linux中:

文件名在系统层面是没有意义的 ,是给用户使用的。

Linux中真正标识一个文件,是通过文件的inode编号识别的!

一个文件一个inode!

硬链接:

OS找磁盘上的文件并不是通过文件名,而是inode编号

其实在linux中可以让多个文件名对应于同一个inode。

这便是使用硬链接的方法。

ln 源文件名 目标文件名

hard  和 myfile.c  的链接状态完全相同,他们被称为指向文件的硬链接。
内核记录了这个连接数, inode 655831 的硬连接数为 2
硬链接的本质:
在文件所在的目录中添加:新文件名和inode编号的映射关系;
我们在删除文件时干了两件事情:
1. 在目录中将对应的记录删除(文件名和inode编号的映射关系);
2. 将硬连接数 -1 ,如果为 0 ,则将对应的磁盘释放。

软链接:

ln -s 要链接的文件名 链接之后的文件名

软链接的使用场景:

如果在当前目录下访问一个文件特别麻烦,我们便可以建立软链接;

相当于Windows中的快捷方式。

经过查看,我们发现软链接是有自己独立的inode的!因此软链接是一个文件,数据块里面存储

(指向文件的所在路径 + 文件名)。 

补充:

我们新创建了一个文件,发现该文件的硬链接数为1;

新创建了一个目录,发现该目录的硬链接数为2 ;

这是因为该目录中的 . 文件也表示该目录;

它们的 inode 编号是一样的。

在mydir的当前目录下创建了tmp目录,mydir的链接数变为了 3;

光数该文件的别名便可知道;

1. mydir

2. mydir目录下的 . 

3. mydir目录下的tmp目录下的 ..

总共三个!!!

坚持打卡!😃

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

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

相关文章

《前端bug齁逼多,真假开发说》2023/4/10-2023/4/18问题汇总

1 高德地图 运行抱错 INVALID_USER_SCODE 这里是错误信息对应原因 错误信息列表-参考手册-地图 JS API | 高德地图API 这里是高德地图api设置说明 准备-入门-教程-地图 JS API | 高德地图API 如果你自己能排查出错误 那不用看我的,如果都写的对还是抱错…

1686_MATLAB处理Excel文件

全部学习汇总: GreyZhang/g_matlab: MATLAB once used to be my daily tool. After many years when I go back and read my old learning notes I felt maybe I still need it in the future. So, start this repo to keep some of my old learning notes servral …

非常详细的阻抗测试基础知识

编者注:为什么要测量阻抗呢?阻抗能代表什么?阻抗测量的注意事项... ...很多人可能会带着一系列的问题来阅读本文。不管是数字电路工程师还是射频工程师,都在关注各类器件的阻抗,本文非常值得一读。全文13000多字&#…

基于html+css的图片展示17

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

2023年4月-近期看书

复习书记 用于读书 文章目录 复习书记一、(2001)控制工程基础二、(3001)交通管理与控制三、(1001)英语 一、(2001)控制工程基础 学习这本书的前6章节。 参看视频链接: https://www.bilibili.com/video/BV1Sb411q7jU?p8&spm_id_frompageDriver&vd_source…

数字化转型危与机,20年老厂的升级之路

“投资大、周期长、见效慢”,是每一家企业在考虑数字化战略时,都会纠结的问题。 打江山容易,守江山难 企业在快速扩张的过程中,往往可以不需要过多的考虑细节的问题,跑马圈地的打法会更加有效。 但是市场占有量开始饱…

瀚高股份吕新杰:创新开源双驱动,躬耕国产数据库

作者 | 伍杏玲 近年来,国际形势不断变幻,也给人们带来巨大警示:关键核心技术是买不来、讨不来的,中国科技企业需寻找研发自强之路。 瀚高基础软件股份有限公司(简称瀚高股份)专注数据库十八年,始…

大厂面试-算法优化:冒泡排序你会优化吗?

关注公众号:”奇叔码技术“ 回复:“java面试题大全”或者“java面试题” 即可领取资料 原文:冒泡排序及优化代码 https://blog.csdn.net/weixin_43989347/article/details/122025689原文:十大经典排序算法 https://frxcat.fun/p…

史上最详细的八大排序详解!(建议收藏)

🚀write in front🚀 📜所属专栏:初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对…

问题排查记录-ffmpeg链接libavfilter和libavcodec:未定义的引用

目录 一、问题背景 二、问题现象 2.1 ffmpeg测试例程 2.2 编译脚本 2.3 错误提示 三、问题排查 3.1 关于提示找不到“stdio" "iostream"头文件的问题 3.1.1查看工具链头文件检索位置 3.1.2 根据工具链路径查找头文件 3.1.3 在编译脚本中指定头文件路径…

第一章 Maven概述

第一节 为什么要学习Maven? maven-作为依赖管理工具 ①jar 包的规模 随着我们使用越来越多的框架,或者框架封装程度越来越高,项目中使用的jar包也越来越多。项目中,一个模块里面用到上百个jar包是非常正常的。 比如下面的例子…

Flex布局

flex是 W3C 提出的一种新的布局方案 当我将某一元素设置为 display:flex 时,这个元素所包含的直接子元素就成为了我的子民 但是我发现我无法控制我的子民, 首先我要解决的是我要控制子民的方向 flex-direction: row 以行排列row-reverse…

Linux-初学者系列2——用户组管理和权限管理

用户组管理和权限管理 Linux-初学者系列2_用户组管理和权限管理一、所有者1、查看文件的所有者指令 2、修改文件所有者指令实操 二、组创建语法指令:实操: 三、所在组1、查看文件/目录所在组基本指令:实操: 2、修改文件所在组基本…

在当前互联网行情下,Android想转音视频开发,会有前景吗?

前言 近年来,由于三年疫情的影响,很多公司都开始陆陆续续的在裁员,Android开发工作岗位也是,可能有些从事Android开发的朋友还没有意识到,Android开发岗位正在变少,求职者,僧多粥少&#xff0c…

020:Mapbox GL加载高德地图(影像瓦片图)

第020个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载高德地图(影像瓦片图)。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共80行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:…

在金融领域使用机器学习的 9个技巧

机器学习已经倍证明可以预测结果和发掘隐藏的数据模式。但是必须小心使用,并遵循一些规则,否则就会在数据的荒野中徘徊而无所获。使用机器学习进行交易的道路充满了陷阱和挑战,只有那些勤奋认真地遵循规则的人才能从中获得收益。下面是一些技…

235:vue+openlayers 绘制带有径向渐变填充色的圆形

第235个 点击查看专栏目录 本示例的目的是介绍如何在vue+openlayer中绘制带有径向渐变填充色的圆形。 如果填充线性渐变的多边形,可以参考这个篇文章 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共136行)相关A…

像素是什么

像素分为设备像素和设备无关像素。 下面说说来龙去脉。 一、显示器 显示图像的电子设备。 (一)显示器种类 1.LCD LCD(Liquid crystal display),是液体晶体显示,也就是液晶显示器,LCD具有功耗低…

HTB靶机-Lame-WP

Lame 简介: Lame is a beginner level machine, requiring only one exploit to obtain root access. It was the first machine published on Hack The Box and was often the first machine for new users prior to its retirement Tags: Injection, C…

5.5G的关键一跳!将数智未来照进现实

编辑:阿冒 设计:沐由 作为数字时代的三大思想家之一,乔治吉尔德在1993年就指出,未来25年内主干网的带宽每6个月增长一倍,其增长速度是摩尔定律预测的CPU增长速度的3倍。 这就是著名的吉尔德定律(Gilder’s …