Linux学习之inode说明
硬盘是常见的存储设备,最小单位叫做扇区,大小512kb。
文件存储在硬盘中,文件存储最小单位叫做块,大小通常为4k。
iNode用于存放文件的元信息,元信息如下:
所有者
所有组
权限
时间戳,ctime:最近一次改变时间;mtime:内容最近一次改变时间;atime:最近一次访问时间
大小
块位置
链接数
linux下可以使用stat命令查看文件详细信息
了解了iNode的概念之后,硬盘格式化就容易理解了。
我们知道,硬盘格式化之后,所能使用的空间并非100%,有一部分被占用了!这个就是iNode。
iNode节点数*每个节点大小=iNode所占空间,我们实际能够使用的空间就是总量-iNode空间。
可以使用df -i查看系统iNode相关情况。
每个文件都有一个iNode号,可以使用stat查看文件iNode号。
文件名这个概念,一看就是人为发明的,用来方便人类的。对于计算机而言,只有iNode号这个概念。
系统读取文件分为三步,找到iNode号,根据iNode号找到元信息,更具元信息找到block位置并读取。
上面说了stat可以查看iNode号,其实ls -i也可以查看iNode号。
硬链接和软链接
元信息中有一项是链接数。这个链接数其实就是指硬链接数量。
一般来说,创建了某个文件的硬链接,该链接数就会+1。相当于给iNode号多起了一个别名。
当文件的链接数为0时,iNode会被系统回收,文件不存在。
而软链接,相当于指向源文名的指针。软链接的多少不会影响链接数,
如果源文件不存在了,软链接自然也没作用了。
可以通过ln创建硬链接,加-s选项来创建软链接。
移动或者重命名文件,iNode号不会改变。
可以采用软链接的方式来缓冲iNode节点不足的现状。
Linux学习之inode说明的更多相关文章
- Linux 学习笔记之超详细基础linux命令 Part 14
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 13---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 2
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 1----------------- ...
- Linux 学习总结(二)
一.用户与用户组管理 1.添加用户 useradd 选项 用户名 -c 指定一段注释性描述 -d 目录,指定用户目录,若目录不存在,-m 选项可以创建目录 -g 指定用户所属用户组 -s 指定用户登陆 ...
- Linux学习之CentOS(一)--CentOS6.6下Mysql数据库的安装与配置
在这里我是通过yum来进行mysql数据库的安装的,通过这种方式进行安装,可以将跟mysql相关的一些服务.jar包都给我们安装好,所以省去了很多不必要的麻烦!!! [root@larry ~]# c ...
- (转)Linux最常用指令及快捷键 Linux学习笔记
Linux最常用指令及快捷键 Linux学习笔记 原文:http://blog.csdn.net/yanghongche/article/details/50827478 [摘自 鸟叔的私房菜]--转 ...
- Linux学习笔记(一) 文件系统
对于每一个 Linux 学习者来说,了解 Linux 文件系统的结构是十分有必要的 因为在 Linux 中一切皆文件,可以说只有深入了解 Linux 的文件系统,才会对 Linux 有更深刻的理解 L ...
- Linux学习02--Linux一切皆文件
Linux学习第二部 Linux一切皆对象 啊啊啊啊啊,今天被学妹说太直了,嘤嘤嘤. 学习linux两三天了,前期感觉并不难,只是命令多,多记记多敲一敲就能都记住了.希望自己能够坚持下去吧! 下面是根 ...
- [转帖]linux学习问题总结
linux学习问题总结 https://www.cnblogs.com/chenfangzhi/p/10661946.html 学习作者的思路 目录 一.环境变量和普通变量的区别 二.rsyslog和 ...
- Linux学习之CentOS(二十六)--Linux磁盘管理:LVM逻辑卷的创建及使用
在上一篇随笔里面 Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理, ...
随机推荐
- [CF441E]Valera and Number
题意:给定$x,k,p$和一份伪代码,伪代码大致是循环$k$次,每次有$p\%$的概率把$x$乘$2$,有$(100-p)\%$的概率把$x$加$1$,问最后在二进制下$x$的末尾期望$0$个数 鸽了 ...
- 【堆】bzoj1293 [SCOI2009]生日礼物
考虑poj3320尺取法的做法,与此题基本一样,但是此题的 位置 的范围到2^31 尺取法不可. 将每种珠子所在的位置排序. 每种珠子要维护一个指针,指到已经用到这个种类的哪个珠子. 所以尺取法用堆优 ...
- 13南理工test01:进制转化
#include<iostream> #include<cstdlib> using namespace std; int main() { //cout<<5/2 ...
- Scala实战高手****第3课:在IDE下开发第一个Scala程序纯傻瓜式彻底透彻解析
- 从系统相册中选择GIF图片上传到服务器
-(void)assetPickerController:(ZYQAssetPickerController *)picker didFinishPickingAssets:(NSArray *)as ...
- Metesploit使用随笔
平时在工作中真正用到metesploit机会不多,偶尔也会用来做漏洞验证,但是每次使用的时候都需要花点时间回忆一下具体是怎么用的,因此索性记下来方便自己,以使用Nessus扫描YS的某个硬件设备发现的 ...
- TSynDBDataSet内存表
TSynDBDataSet内存表 SynDBMidasVCL.pas TSynDBDataSet = class(TCustomClientDataSet) Props := TSQLDBSocket ...
- 获取配置文件中的key的value
获取App.config文件的key的value System.Configuration.ConfigurationManager.AppSettings["keyName"] ...
- Linux下获取本机IP地址的代码
Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAdd ...
- iOS:iOS为什么要用-all_load、-ObjC、-force_load
为了减少工作量复用部分代码,于是乎我们开始选择重构整个项目,把可以公用的代码放在一起打包成一个静态库导入到其他的项目中使用. 介绍这部分内容的文章在网上很多,各位可以Baidu一下细看. 但是每次在加 ...