Linux 文件的详解[分类/扩展名/inode/block]
关于Linux文件的介绍
Linux里文件扩展名和文件类型没有关系,Linux系统中一切皆文件
关于Linux文件分类
纯文本文件(可以cat的)
二进制文件(Linux的可执行文件等,如/bin/cp)
数据格式文件:有程序运行过程中读取某些特定格式的文件,通过last读取(cat报乱码错误)
wholog ==>who /var/log/wtmp
套接口文件:socket进程之间通信用 进程数据库的通信文件
管道文件:(不重要)
附:文件类型【man find 搜索type可看 】
Linux文件的扩展名
源码.tar.gz
.sh: shell脚本文件 shell语言开发
.pl: perl语言文件 用perl语言开发
.py:使用python语言开发
.html:网页文件
.conf: 服务的配置文件
.lock: 锁文件
.rpm: rpm安装包
关于文件Inode的介绍
Inode实际上是一个64字节的磁盘地址表。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block),然后将散列在磁盘的文件组成一个逻辑文件。
这种由多个扇区组成的"块",是文件存取的最小单位。
"块"的大小,最常见的是4KB,即连续八个扇区sector组成一个块block。
操作系统读取的时候,根据磁盘地址表的顺序,一次读取块中的内容,
stat:命令,查看某个文件的inode信息:
1、唯一表示,内核根据此区别文件是否同一文件。Linux读取文件首先读取这个索引点。
2、每个Linux存储设备(U盘,硬盘==> 整本书)或者存储设备的分区被格式化后使用
3、inode的大小在文件系统被格式化后就无法更改,格式化前可以指定inode的大小
查看分区信息-->inode大小:
dumpe2fs /dev/sda1 | grep -i "inode size"
关于文件在Linux系统的存储
Linux文件由2部分组成【inode + block】
第一部分是Inode(首页目录索引)
存放数据属性[ls -l的显示结果]以及实体文件的指向;
且文件的属性不包括文件名
第二部分是Block(书的每一页)
存储数据 (上级目录存储下一级目录的文件名)
读取文件流程:
1.cat file -> 2.indoe权限校验 -->3.权限通过,访问实体的文件内容(可能有多个block)
总结:
inode小结:
1.磁盘分区后生成一定数量的inode和block
2.inode是索引节点,存放文件的属性信息以及真实的索引
3.ext4文件系统 blocK存放真实数据
4.inode是一块存储空间,C6是256字节
5.inode是一串数字,且在文件中有唯一标示,内核根据此查询是否是同一文件
block总结:
1.磁盘读取数据都是按照block为单位读取的
2.一个文件可能占用多个block,每读取一次都会消耗一次IO
3.如果要提升磁盘IO的性能,就尽可能的一次性读取尽量多的数据
4.一个block只能存放一个文件的内容,无论内容多小。
如果block(非系统磁盘 4k) ,。那么存放1k的文件就会浪费3k
5.block并非越大越好。block太大对于小的文件会浪费磁盘空间。
例如,1000k的文件,block=4k,占用250个block,消耗IO为250次
block=1k,占用1000个block,消耗IO为1000次
6.block的设置是在格式化分区的时候
mkfs.ext4 -b 2048 -I 256 /dev/sdb
ext4文件一般设置4K
Linux 文件的详解[分类/扩展名/inode/block]的更多相关文章
- windows/NBTSTAT,linux/nmblookup命令详解,查询NetBIOS名
NBTSTAT命令详解 请问: Linux下有没有和nbtstat一样的命令,用 nmblookup -A ip 可以 nbstat命令主要用于查看当前基于netbios的tcp/ip连接状态,通过该 ...
- linux学习之路第八天(linux文件权限详解)
建议和我上一篇博客一起通读,效果更加 1.权限的基本介绍 通过一张图片解决疑惑(重点) rwx权限详解 rwx作用到文件 1)[r]代表可读(read) :可以读取,查看 2)[w]代表可写(writ ...
- /var/log目录下的20个Linux日志文件功能详解 分类: 服务器搭建 linux内核 Raspberry Pi 2015-03-27 19:15 80人阅读 评论(0) 收藏
如果愿意在Linux环境方面花费些时间,首先就应该知道日志文件的所在位置以及它们包含的内容.在系统运行正常的情况下学习了解这些不同的日志文件有助于你在遇到紧急情况时从容找出问题并加以解决. 以下介绍的 ...
- Linux文件解压缩详解
tar命令 我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar.可是Linux就不同了,它有.gz..tar.gz.tgz.bz2..Z..tar等众多的压缩文件名, ...
- LINUX 文件权限详解
ls -l // 查看文件的权限 等价于 ll 文件的权限信息查看 -rw-rw-r-- 1 ceshi ceshi 891 Aug 8 17:28 server drwxrwxr-x 10 cesh ...
- Linux文件时间详解ctime、mtime、atime【转】
本文转载自:http://blog.csdn.net/doiido/article/details/43792561 Linux系统文件有三个主要的时间属性,分别是 ctime(change time ...
- [转]Linux文件权限详解
转自:http://blog.chinaunix.net/uid-25052030-id-174343.html 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问 ...
- linux文件权限详解
一.文件和目录权限概述在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一 ...
- CentOS \Linux文件权限详解
文件和目录权限概述 在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录. 通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个 ...
随机推荐
- 自学C Primer Plus时还没想明白的问题
2016年11月24日 1. 计算机中两个浮点数怎样进行加法运算.2. 为什么计算机在计算时存在损失精度的可能3. 无符号数和有符号数的运算是怎样的4. printf中使用格式控制符的截断问题,比如% ...
- java面试③Web部分
2.2.1 讲一下http get和post请求的区别 get和post请求都是http的请求方式,用户通过不同的http请求方式完成对资源(url)的不同操作,具体点来讲get一般用于获取/查询资源 ...
- c#基础学习(0806)之接口学习
首先了解一下什么是接口: 1.接口就是一种规范,协议,约定好遵守某种规范就可以写通用的代码 2.定义了一组具有各种功能的方法(只是一种能力,没有具体实现,像抽象方法一样,“关说不做”) 接口存在的意义 ...
- SQL Server数据类型转换方法
在SQL Server日常的函数.存储过程和SQL语句中,经常会用到不同数据类型的转换.在SQL Server有两种数据转换类型:一种是显性数据转换:另一种是隐性数据转换.下面分别对这两种数据类型转换 ...
- 四:Jquery-animate
动画效果: 1.显示/隐藏动画效果 动态的改变当前元素的宽,高和不透明度 show([duration],[fn]); //显示当前元素 hide([duration],[fn]); //隐藏当前元素 ...
- npm saveError ENOENT: no such file or directory
1.报错情况 在执行npm install xxx时,出现如下:npm WARN saveError ENOENT: no such file or directory, open '/nodetes ...
- Oracle ORA12514 监听程序当前无法识别连接描述符中请求的服务
在连接数据库的时候,有时会遇到一个“ORA12514:监听程序当前无法识别连接描述符中请求的服务”的错误,这个错误其实就是数据库动态注册(关于动态注册会在稍后讲解)不生效,导致监听器无法识别客户端连接 ...
- 【原创】MapReduce运行原理和过程
一.Map的原理和运行流程 Map的输入数据源是多种多样的,我们使用hdfs作为数据源.文件在hdfs上是以block(块,Hdfs上的存储单元)为单位进行存储的. 1.分片 我们将这一个个block ...
- [js高手之路]Node.js实现简易的爬虫-抓取博客所有文章列表信息
抓取目标:就是我自己的博客:http://www.cnblogs.com/ghostwu/ 需要实现的功能: 抓取博客所有的文章标题,超链接,文章摘要,发布时间 需要用到的库: node.js自带的h ...
- 莫名其妙的标记之@noescape
Swift 中经常遇到一些不熟悉的关键字, 例如@autoclosure, @noescape...等等, 为什么要加这样的关键字, 我自己写方法的时候什么时候要加, 什么时候不加, 都是应该考虑的问 ...