站长家园(原代码之家)(www.adminjie.com)网站源码,微信源码,游戏源码,商业源码分享平台。
当前位置:网站首页 技术文章 网络编程 正文

linux创建文件失败的原因有哪些

时间:2022-06-11 [网络编程]作者:fabuyuan 浏览:4 次

linux创建文件失败的原因:1、当前目录对应的磁盘空间不足;在某个目录下创建文件时,实际上是在这个目录对应的磁盘上操作,如果这个磁盘已经满了,自然就创建失败。2、inode不足;由于一个文件对应一个inode,当磁盘里的小文件过多时,就会出现block数量还很多,但是inode分配完了,也就是空间还很多,但是也无法创建,那是因为创建文件时,申请inode号失败。

本教程操作环境:linux7.3系统、Dell G3电脑。

创建文件失败

Linux系统中创建文件失败是比较常见的,当然这里的创建文件不单单指用户手动创建文件,更多的情况是一些网络服务,日志系统等需要持续写文件,创建文件,真正用户创建文件失败的情况比较少见。接下来我们分析一些,为什么会创建失败。

文件创建失败的原因:

1、当前目录对应的磁盘空间不足

根据上面的描述,在某个目录下创建文件时,实际上是在这个目录对应的磁盘上操作,如果这个磁盘已经满了,自然就创建失败,更具体的描述是:创建文件时,申请block时失败。可以用下面的命令查看:

# 查看当前目录所在磁盘的空间使用情况
df -h ./

2、inode不足

这是创建文件失败的另一个原因。由于一个文件对应一个inode,当磁盘里的小文件过多时,就会出现block数量还很多,但是inode分配完了,也就是空间还很多,但是也无法创建,那是因为创建文件时,申请inode号失败。可以用下面的命令确认是否是innode分配完了

# 查看当前目录所在磁盘的inode的使用情况
df -i ./

扩展知识:几个关键的名词

  • superblock:用比较通俗的话来解释就是:superblock手底下管着一片磁盘区域,凡是对文件的操作(创建,访问,删除)都要经过superblock,充当磁盘管理大管家的角色。

  • inode:随磁盘格式化而预先划分的小的磁盘区域,一般每个inode为128字节,用于记录文件的权限,属性,占用block等信息。且每个文件对应一个inode,inode的申请,归还由superblock管理,inode的数量是有限的。

  • block:文件内容真正存放的地方,块的大小也是随磁盘格式化而划分,根据系统不一样,每个块可以是1K,2K,4K大小,一个文件的内容必须占用整数块block,用完剩下的空间,就浪费了。比如:每个块为4K,假设有一个文件大小为1K,那么也需要分配一个块给他,这块剩余的3K就不能被其他文件使用了。叫做磁盘碎片。另一个情况是一个文件是10K,那么他需要占用3个块,实际使用率为10/12,并且这三个块的编号都是记录在这个文件对应的inode里。

  • 挂载点:在Linux系统中,每个物理磁盘都是挂载在某个目录下,在这个目录下创建文件,就等于在这块物理磁盘上写东西。

    通俗点说:一块物理磁盘首先是挂载在文件树的某个目录上,物理磁盘被划分为多个区域,每个区域有一个管理该区域的superblock,该区域随磁盘格式化预先划分为一定数量并且进行编号的inode和block,一个inode对应一个文件,创建新文件时,需要去superblock那先申请一个inode号,再根据文件大小,申请若干个block,在inode中记录文件的属性,权限,占用的block编号,最后把文件的真正内容写入分配好的block中。

相关推荐:《Linux视频教程

以上就是linux创建文件失败的原因有哪些的详细内容,更多请关注站长家园其它相关文章!

本文标签:  linux

转载请注明来源:linux创建文件失败的原因有哪些

本文永久链接地址:https://www.adminjie.com/post/13366.html

免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。

  • 站长家园(原代码之家)会员升级
  • 最新文章
    • Vue3和Vue2的差异是什么?全方位对比一下!

      Vue3和Vue2的差异是什么?全方位对比一下!

      Vue3和Vue2的差异是什么?下面本篇文章给大家全方位对比Vue3与Vue2,聊聊Vue3与Vue2的区别,希望对大家有所帮助!从Vue3发布以来,我就一直对...

    • 浮动是css3的新特性吗

      浮动是css3的新特性吗

      浮动不是css3的新特性。定义元素在哪个方向浮动的float属性在css1时就已经可以使用了,css的浮动会使元素向左或向右移动,其周围的元素也会重新排列,一个...

    • translate是css3属性吗

      translate是css3属性吗

      translate是css3的一个新的css属性;translate属性用于定义元素的2d平移转换,该属性常与transform属性配合使用,transform...

    • 浅析Angular中的独立组件,看看怎么使用

      浅析Angular中的独立组件,看看怎么使用

      本篇文章带大家了解一下Angular中的独立组件,看看怎么在Angular中创建一个独立组件,怎么在独立组件中导入已有的模块,希望对大家有所帮助!Angular...

    • link是不是css3新增样式规则

      link是不是css3新增样式规则

      link不是css3新增样式规则。“:link”是在css3之前就已经可以使用的选择器,可以用于设置链接的样式,该选择器用于选取未被访问的链接,不会设置已经访问...

    热门文章