文件的构成

由元数据(metadata)和数据(data)两部分组成

硬盘分区上一块空间存该分区上文件的元数据,一块空间存这些文件的数据

因为元数据和数据分离存放,所以需要通过指针地址来进行关联

元数据: 存放文件的属性信息

存放每个文件的元数据信息: innode表

元数据信息包括:

  • inode number 节点号
  • 文件大小、类型、权限
  • UID、GID
  • 所有者、所属组
  • 文件时间戳(三个)
  • 链接数

节点编号:每个文件的唯一标识,innode number (ls -i 可以查看inode编号)

df -i --- 每个空间可用得节点编号数量,不同分区得节点编号不干扰

数据: 存放文件真正的数据

磁盘上存放数据空间的分配单位:块(block),默认大小为4kb。 一个文件的数据部分由若干个块来存放。

inode表和数据部分通过指针地址进行关联(指针是保存了别人地址值的一个变量)

目录文件的组成:

目录文件是一个特殊的文件

两部分组成

  • 元数据 -- 存放属性信息
  • 数据块:数据块存放的是文件列表(inode table)和inode number之间的映射关系

删除目录中的文件:

把目录文件的数据块部分的文件列表和文件的节点编号的映射关系删除。

创建文件

1.系统分配空闲的节点编号

2.系统在存放元数据信息的空间添加上对应的该文件的元数据信息

3.在存放数据的空间分配指定大小的空间给该文件存放数据

解决磁盘空间不足的问题

方法一:

1.直接删除占用大的文件,但是若是这个文件被其他进程使用,即使删除了文件但是空间仍然没有被释放。

2. lsof | grep delete --- 照到被删除的文件,看他被那个进程占用,使用kaill关闭这个进程就行了

方法二:

使用重定向创建一个空文件去替换原有的文件---cat /dev/null > 指定文件

创建文件出现空间不够的问题

1.磁盘分区的节点号 inode用完了 可以使用 df -i 进行查看

2.分区的空间真的占用满了 使用df -h 进行查看

软硬链接

硬链接

硬链接:一个文件多个文件名

创建完硬链接后 权限后面的数字会显示这个文件的文件名个数 --- 连接数表明有几个文件名

链接数:

硬链接特点:

  1. 不能跨设备、跨分区
  2. 可以通过多种路径访问到文件
  3. 不允许对目录文件创建硬链接
  4. 每创建一个硬链接 链接数就加1

    注意:

    不允许对目录文件创建硬链接,目录文件链接数2的来源:

    一个是自己本身的名字,一个是目录文件里面的点(.)

软(符号)链接

和源文件非同一个文件、源文件链接数没有变、创建的文件类型和源文件不一样

特点:

  1. 软链接和源文件不是同一个文件(不像硬链接一样)
  2. 创建软连接后,源文件的连接数没有变化
  3. 软连接的文件大小和源文件没有关系,软连接的大小就是源文件路径字符的大小
  4. 软链接支持跨设备和目录文件创建软链接

删除源文件后,软连接就不能使用了

允许跨分区进行操作、且支持给目录文件创建链接

以相对路径创建软链接:

  • 创建软链接时,如果源文件使用相对路径,则这个路径应该相对于软链接文件的相对路径,而不是相对于自己本身
  • 创建一个软连接到一个目录下,没有指定软连接的名字,那么软连接的名字和源文件名一致

Linux文件的删除和软硬链接的更多相关文章

  1. linux学习(四)复制(cp)移动(mv)删除(rm)查找(find)文件、文件夹操作、软硬链接的区别

    目录 复制文件 mv命令 rm命令 touch 命令 file命令 find命令 grep命令 mkdir命令 rmdir命令 @(复制移动删除查找文件.软硬链接的区别) 复制文件 cp命令用于复制文 ...

  2. Linux文件的软链接和硬链接

    1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link).还有一种被称为符号链接(Symbolic Link).默认情况下.ln命令产生硬链接. 1.1索引节点 索引节点是 ...

  3. Linux运维学习笔记-软硬链接知识总结

    文件链接   硬链接,通过索引节点来进行链接 硬链接原理图 硬链接的创建: 直接执行命令“ln 源文件 硬链接文件”,即可完成创建硬链接. 硬链接知识小结: 1.具有相同Inode节点号的多个文件是互 ...

  4. linux文件描述符、软硬连接、输入输出重定向

    引用链接:https://blog.csdn.net/qq769651718/article/details/79459346 文件描述符的作用: 文件描述符是linux操作系统中特有的概念.其相当于 ...

  5. linux 文件已经删除,但是空间没有释放的原因

    监控系统报告一台服务器的空间满了,登陆后发现/tmp下有大量access_log文件,分析是Apache的日志文件很久没有清理了,确认并执行删除操作. 但是,问题来了,执行 rm /tmp/acces ...

  6. Linux文件被删除后恢复

    当ext4中的文件被删除后,进行文件恢复:http://www.360doc.com/content/18/0320/08/51898798_738625260.shtml上面的博客是恢复删除的文件, ...

  7. linux文件夹删除、创建

    一.删除文件夹 rm -rf ./html2imag 二.创建文件夹 mkdir html2image

  8. NO21 Llinux的文件种类与扩展名--文件权限--软硬链接--Linux删除文件原理

    Linux的文件种类与扩展名 一.文件种类:1.普通文件(regular file)第一个字符为[ - ]包括:①纯文本档(ASCII):这是Linux系统中最多的一种文件类型,称为纯文本档.是因为内 ...

  9. 软硬链接、文件删除原理、linux中的三种时间、chkconfig优化

    第1章 软硬链接 1.1 硬链接 1.1.1 含义 多个文件拥有相同的inode号码 硬链接即文件的多个入口 1.1.2 作用 防止你误删除文件 1.1.3 如何创建硬链接 ln 命令,前面是源文件  ...

随机推荐

  1. 【2021 ICPC Asia Jinan 区域赛】 C Optimal Strategy推公式-组合数-逆元快速幂

    题目链接 题目详情 (pintia.cn) 题目 题意 有n个物品在他们面前,编号从1自n.两人轮流移走物品.在移动中,玩家选择未被拿走的物品并将其拿走.当所有物品被拿走时,游戏就结束了.任何一个玩家 ...

  2. AspNetCore配置多环境log4net配置文件

    前言 在之前的文章中有讲到AspNetCore多环境配置文件的应用,我们根据自己多种环境分别配置多个appsettings.$EnvironmentName.json文件. 在实际的开发中我们可能会遇 ...

  3. 【FAQ】接入HMS Core地图服务过程中常见问题总结

    HMS Core地图服务(Map Kit)给开发者提供一套地图开发调用的SDK,助力全球开发者实现个性化地图呈现与交互,方便轻松地在应用中集成地图相关的功能,全方位提升用户体验. 在日常工作中,我们会 ...

  4. .NET 6上的WebView2体验

    上次说为了不想在web端登录博客园,我想着还是继续使用MarkWord编写博客,不过在使用的过程中,如果markdown文件的目录中有中文的话,Markdown预览就不能够显示粘贴的图片了,原因是之前 ...

  5. 2.3 为什么建议使用虚拟机来安装Linux?

    笔者认为,通过虚拟机软件学习是初学者学习 Linux 的最佳方式. 在与部分读者的交流中,笔者发现,很多初学者都认为,学习 Linux 就必须将自己的电脑装成 Linux 系统或者必须要有真正的服务器 ...

  6. asp.net swagger的使用

    最近要从其他系统获取一些数据,准备写个接口让别人把数据塞进来,顺便学习一下如何使用Swagger. 参考大神的教程:asp.net  https://mp.weixin.qq.com/s/SHNNQo ...

  7. vue3 vite 系统标题 系统名称统一配置

    想要统一配置系统名称 或者其他的,需要在vue3中使用 vite 的环境变量 vite 的环境变量 需要创建两个文件(和 vite.config.js 文件同一目录) .env.development ...

  8. SM3和Blake

    在此给出SM3和Blake的对比 哈希函数 哈希算法 (Hash Algorithm) 是将任意长度的数据映射为固定长度数据的算法,也称为消息摘要.一般情况下,哈希算法有两个特点, 一是原始数据的细微 ...

  9. MySQL8小时问题

    一.问题 获取MySQL连接,8小时内无请求自动断开连接. 二.解决 2.1 分析 MySQL服务器默认的"wait_timeout"是28800秒即8小时,意味着如果一个连接的空 ...

  10. 好客租房55-props深入(2props校验)

    对于组件来说 props是外来的 无法保证使用者传入什么格式的数据 传入的数据格式不对 可能会导致组件内部报错 关键问题:不知道报错的具体原因 1安装包props-types 2导入props-typ ...