文件的构成

由元数据(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. 计算机编码规则之:Base64编码

    目录 简介 Base64和它的编码原理 Base64的变体 Base64的编码细节 总结 简介 我们知道计算机中的文件可以分为两种,一种是人肉眼可读的文本类文件,一种是肉眼不可读的二进制文件.一般来说 ...

  2. K8S+Jenkins自动化构建微服务项目(后续)

    因为之前写过基于K8S部署jenkins master/slave平台,在这个的基础上构建微服务到K8S集群中 Jenkins-slave构建微服务项目到K8S集群 1.微服务项目上传到git仓库 这 ...

  3. centos下安装ansible自动化工具(超详细,包含基本使用)

    ansible官网:https://www.ansible.com 众所周知,ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef ...

  4. 使用 bitnami/postgresql-repmgr 镜像快速设置 PostgreSQL HA

    什么是 PostgreSQL HA? 此 PostgreSQL 集群解决方案包括 PostgreSQL 复制管理器(replication manager),这是一种用于管理 PostgreSQL 集 ...

  5. vue下一代状态管理Pinia.js 保证你看的明明白白!

    1.pinia的简单介绍 Pinia最初是在2019年11月左右重新设计使用Composition API的 Vue 商店外观的实验. 从那时起,最初的原则相同,但 Pinia 适用于 Vue 2 和 ...

  6. 配置Linux的时钟同步

    公众号关注 「开源Linux」 回复「学习」,有我为您特别筛选的学习资料~ Ubuntu系统默认的时钟同步服务器是ntp.ubuntu.com,Debian则是0.debian.pool.ntp.or ...

  7. JDBC:加载数据库驱动、连接数据库(详细讲解)

    加载数据库驱动: 1)由于Java是一个纯面向对象语言,任何事物在其中都必须抽象成类或者类对象,数据库也不例外,JDBC同样也把数据库抽象成面向对象的结构: 2)JDBC将整个数据库驱动器在底层抽象成 ...

  8. JavaScript 数据结构与算法3(链表)

    学习数据结构的 git 代码地址: https://gitee.com/zhangning187/js-data-structure-study 1.链表 本章学习如何实现和使用链表这种动态的数据结构 ...

  9. 客户案例-SES S.A.

    SES专门为世界上最偏远的地方提供高性能的移动网络连接.广播.维和人员的实时情报和媒体内容. SES是一个全球性组织,专注于提供高性能的视频和虚拟数据解决方案.今天,SES拥有最大的覆盖范围,有超过7 ...

  10. 单源最短路问题:OJ5——低德地图

    本题就是一道单源最短路问题.由于是稀疏图,我们采用Dijkstra算法. Dijkstra算法原理 Dijkstra算法的步骤 我们把所有的节点分为两个集合:被选中的(visited==1) 和 未被 ...