浅谈inode

1.初识inode:

文件存于硬盘上(硬盘最小存储单元是“扇区”(sector),每个扇区储存512字节)

操作系统读硬盘时,一次性读取一个“块”(block)(8个sector组成)

由多个扇区组成的块——>文件存取的最小单位

文件数据存储在“块”中

储存文件元信息——>inode(索引节点)

2.inode包含文件的元信息,其内容:

文件字节数、文件拥有者的User ID、文件的Group ID、文件的读、写、执行权限、文件的时间戳、链接数(即有多少文件名指向这个inode)、文件数据block位置

(除了文件名以外的所有文件信息,都存在inode中)

3.查看指令

stat example  //查看某个文件的inode信息

sudo dumpe2fs -h /dev/hda | grep "Inode size"  //查看每个inode节点的大小

df -i  //查看每个硬盘分区的inode总数和已经使用的数量

ls -i  //整个目录文件里的文件名和inode号码

ls -i example  //查看文件名对应的inode号码

4.硬盘格式化时,将硬盘分为2个区域:

数据区(存放文件数据)

inode区 (inode table,存放inode所包含的信息)

5.(1)硬链接(hard link)

Unix/Linux允许,可用不同的文件名访问同样的内容。对文件内容的修改,会影响所有文件名,但删除一个文件名,不影响另一个文件名的访问。(inode号码一样)

创建:ln 源文件 目标文件

特点:有相同的inode号,仅文件名不同的文件(文件有相同的inode及data block);

只能对已存在文件进行创建;

不能对目录进行创建,只能对文件进行创建;

删除一个硬链接文件,不影响其他具有相同inode号码的文件

(2)软链接(soft link 或者 symbol link)

文件A、文件B的inode号码不一样,但文件A的内容是文件B的路径。读取文件A时,系统自动将访问者导向文件B。因此,无论打开那个文件,最终读取的都是文件B。——>此时,文件A称为文件B的“软链接”(或“符号链接”)。文件A依赖于文件B而存在,如果删除文件B,打开文件A就会报错“没有这个文件或目录”。

eg:ln -s test.c(B) try.c(A)

那么 try.c(A)——>test.c(B)

软链接有自己的inode号及用户数据块。

创建:ln -s 源文件或目录 目标文件或目录

特点:软链接有自己的文件属性及权限;

可对不存在文件或目录创建软链接;

软链接可对文件或目录进行创建;

创建软链接时,连接计数不会增加;

删除软链接不影响被指向的文件,但若被指向的文件被删除,则相关软链接变成死链接(若被指向路径文件被重新创建,死链接可恢复为正常的软链接)

6.软链接和硬链接最大的不同:

文件A 指向文件B 的文件名,而不是文件B的inode号码,文件B的inode的链接数不会因此发生变化。

时间: 2024-12-28 11:02:48

浅谈inode的相关文章

浅谈inode和block与磁盘性能的初级优化

什么是inode和block? 所谓的inode就是索引节点(index node)的意思,在每一个存储设备被格式化创建文件系统后,所有的文件大致被分为了两部分,分别是inode和block. 其中inode用来存储文件属性信息,其中包括了文件大小,文件的归属者,文件的归属组,权限,类型,修改时间,以及指向文件实体数据(block)的指针. block中存储的就是文件的实际数据,比如说,照片,视频,音频等等,但是有一点需要注意!就是inode当中不包含文件名!一个文件的文件名,存储在上级目录的b

浅谈JDK的File.equal()

我们一般比较两个文件对象是否同一个文件,一般会使用java.io.File.equal().这里所说的equal()并不是比较文件内容是否一样,而是看两个文件对象是否指向同一个文件. File的equal()方法,实际上调用了当前文件系统FileSystem的compareTo(). public boolean equals(Object obj) { if ((obj != null) && (obj instanceof File)) { return compareTo((File

浅谈图片服务器的架构演进

浅谈图片服务器的架构演进 现在几乎任何一个网站.Web App以及移动APP等应用都需要有图片展示的功能,对于图片功能从下至上都是很重要的.必须要具有前瞻性的规划好图片服务器,图片的上传和下载速度至关重要,当然这并不是说一上来就搞很NB的架构,至少具备一定扩展性和稳定性.虽然各种架构设计都有,在这里我只是谈谈我的一些个人想法. 对于图片服务器来说IO无疑是消耗资源最为严重的,对于web应用来说需要将图片服务器做一定的分离,否则很可能因为图片服务器的IO负载导致应用 崩溃.因此尤其对于大型网站和应

.net中对象序列化技术浅谈

.net中对象序列化技术浅谈 2009-03-11 阅读2756评论2 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数 据.例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象.反之,反序列化根据流重新构造对象.此外还可以将对象序列化后保存到本地,再次运行的时候可以从本地文件 中“恢复”对象到序列化之前的状态.在.net中有提供了几种序列化的方式:二进制序列化

浅谈——页面静态化

现在互联网发展越来越迅速,对网站的性能要求越来越高,也就是如何应对高并发量.像12306需要应付上亿人同时来抢票,淘宝双十一--所以,如何提高网站的性能,是做网站都需要考虑的. 首先网站性能优化的方面有很多:1,使用缓存,最传统的一级二级缓存:2,将服务和数据库分开,使用不同的服务器,分工更加明确,效率更加高:3,分布式,提供多台服务器,利用反向代理服务器nginx进行反向代理,将请求分散开来:4,数据库的读写分离,不同的数据库,将读操作和写操作分开,并实时同步即可:5,分布式缓存,使用memc

单页应用SEO浅谈

单页应用SEO浅谈 前言 单页应用(Single Page Application)越来越受web开发者欢迎,单页应用的体验可以模拟原生应用,一次开发,多端兼容.单页应用并不是一个全新发明的技术,而是随着互联网的发展,满足用户体验的一种综合技术. SEO 一直以来,搜索引擎优化(SEO)是开发者容易忽略的部分.SEO是针对搜索(Google.百度.雅虎搜索等)在技术细节上的优化,例如语义.搜索关键词与内容相关性.收录量.搜索排名等.SEO也是同行.市场竞争常用的的营销手段.Google.百度的搜

浅谈html标签

浅谈html各常用标签用法 标题标签:<h1>-<h6>来表示,使标题字体变粗. <br />换行标记 <hr />水平分隔符 &nbsp空格符 &copy版权符 <a href>a标签超链接 href可接链接地址 <p>段落标签<blockquote>引用标签及可用做缩进 <table>表格中的<ul>无序列表<ol>有序列表<dl>自定义列表<row

浅谈二维中的树状数组与线段树

一般来说,树状数组可以实现的东西线段树均可胜任,实际应用中也是如此.但是在二维中,线段树的操作变得太过复杂,更新子矩阵时第一维的lazy标记更是麻烦到不行. 但是树状数组在某些询问中又无法胜任,如最值等不符合区间减法的询问.此时就需要根据线段树与树状数组的优缺点来选择了. 做一下基本操作的对比,如下图. 因为线段树为自上向下更新,从而可以使用lazy标记使得矩阵的更新变的高校起来,几个不足就是代码长,代码长和代码长. 对于将将矩阵内元素变为某个值,因为树状数组自下向上更新,且要满足区间加法等限制

[nRF51822] 14、浅谈蓝牙低功耗(BLE)的几种常见的应用场景及架构(科普类干货)

蓝牙在短距离无线通信领域占据举足轻重的地位—— 从手机.平板.PC到车载设备, 到耳机.游戏手柄.音响.电视, 再到手环.电子秤.智能医疗器械(血糖仪.数字血压计.血气计.数字脉搏/心率监视器.数字体温计.耳温枪.皮肤水分计等), 再到智能家居等领域均占有一席之地. 而蓝牙低功耗(BLE)是在蓝牙4.0协议上修改以适用低功耗应用场景的一种蓝牙协议. 随着上一股智能消费类电子大潮的到来,BLE的各种应用也像雨后春笋般在市场上铺开. 如果想 紧跟蓝牙协议的最新动态 ,可以在https://www.b