inode工作原理及软连接与硬链接

 inode工作原理及软连接,硬链接

inode:

在linux文件系统中,不管什么类型的文件,保存在磁盘分区中时,系统都会分配一个编号,叫做索引节点index node,简称inode

inode里面存储了文件的很多参数:

文件类型,权限。UID,GID,属主,属组

链接数(指向这个文件名路径名称个数)

该文件的大小和不同的时间戳

指向磁盘上文件的数据指针

....

在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块,系统获取文件内容过程如下:

inode工作原理:

文件有元数据和数据内容组成,元数据存放在inode表里,而数据内容则是存放在数据块中

而在inode表里除了元数据,还有指针,指针对应的就是数据块的路径

直接指针:直接指针有12个,分别指向12个数据块,数据块一般默认4k,所以直接指针指向的

是小于12*4k=48k的文件

间接指针:在inode表里,直接指针过后就是间接指针,间接指针指向一个数据块,但是此数据块

不存储数据,而是作为一个数据块指针,每个指针大小为4个字节,所以一个数据块里面可存           放4096/4=1024个数据块指针,同样每个数据块指针会指向一个4k大小数据块,最后间接指针

能够指向的文件大小为1024*4k=4096k=4M

双重间接指针:在间接指针后,双重间接指针可以和间接指针一样理解,只是把最后指向的存放内容的               数据块作为数据块指针,这样能够指向的文件大小为1024*1024*4k=4G

后面依次类推就可以了,原理一样


硬链接:可以理解为一个文件的不同的名字


特性:

1.硬链接文件有相同的inode及数据块(date block)

2.只能对已存在的文件进行创建

3.删除一个硬链接文件不会影响其他有相同inode号的文件

4.不能跨文件系统进行硬链接的创建

5.不能对目录进行创建,只可对文件创建

6.创建硬链接会增加链接次数,而删除链接则会减少链接次数

图一

图二


软链接:可以理解为一个文件的快捷方式


特性:

  1. 软链接文件有自己的文件属性及权限等等

2.  可对不存在的文件或目录创建软连接

3.  软连接可跨文件系统创建

4.  创建软连接时,链接次数不会增加

5.  删除软链接文件并不影响源文件,但是如果源文件被删除了,则其软链接文件变红,内容无法访问


文件访问图示:



总结下硬链接和软连接文件的区别:

1.源文件和硬链接文件inode号相同,是同一个文件,只不过文件名不一样,所以大小属性等信息都一样

而源文件与软链接文件inode号不同,是两个文件,所以大小,属性之类都不相同

2.查看文件详细属性时可知,软连接注明了是链接文件(例c ->b),而硬链接文件没有,所以我们可以    认为链接文件和源文件是完全平等的关系,而软连接可以理解为是源文件的快捷方式

3. 链接文件的数目变更,软链接文件的链接次数不会变化,而硬链接文件的链接次数会随之变化

4.软连接不受文件系统的限制,硬链接只能在同一文件系统

5.当源文件从一个目录移动到其他目录中时,访问硬链接文件不受影响,访问软链接文件会报错


时间: 2024-10-04 16:20:03

inode工作原理及软连接与硬链接的相关文章

inode   软连接和硬链接

一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小储存单位叫做"扇区".每个扇区储存512个字节(相当于0.5KB). 操作系统读取硬盘的时候,不会一个一个扇区的读,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block).这种有多个扇区组成的"块",是文件存取的最小单位."块"的大小,最常见的是4KB,即连续八个"扇区"组成一个"块&q

inode、软连接、硬链接

一.inode是什么? 理解inode,要从文件储存说起.文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB).操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block).这种由多个扇区组成的"块",是文件存取的最小单位."块"的大小,最常见的是4KB,即连续八个 sector组成一个 block.文件数据

Linux课堂作业2(inode工作原理以及软硬连接的区别)

inode工作原理: 一个文件包括元数据和数据内容,元数据存放在inode table中,而数据内容存放在block块中,inode存放着各个文件的元数据条目,其内容包括,一些基本的元数据比如mode,ownership,sizetimestamp,还存放着指向数据的指针,这些指针分为直接指针和间接指针,双重间接指针甚至三种间接指针.直接指针代表直接指向数据内容的block块,间接指针下一层指向虽然是一个数据块,但是数据块内却不是文件的数据内容,而是一个指针数据块,如果块大小为4k,每个指针占4

软连接与硬链接区别

前言: 今天学习了文件系统,简单的接触到文件系统构成的原理.原来我们不管在linux和win上面删除某个文件只是删除一个链接而已.而linux把链接分为软链接和硬链接.接下来我们就从文件系统构成的基本原理出发来说明下linux软链接和硬链接的区别. 文件系统简述: linux的哲学就是一切皆文件.为了方便人们的使用,我们可以通过看文件名来区分不同的文件.但作为只识别0 1 的机器,让它识别一串文字肯定复杂的多.所以linux文件系统用一串数字来标识一个文件,而且这个数字在文件所处的分区中是唯一存

Linux软连接和硬链接_note

软链接的用途 (1) 软链接可以跨分区,也可以给目录创建软链接 (2) 当某个分区不够用时,则可以在该分区下创建一个软链接,链接到一个大的分区下,这样可 以避免磁盘写满 (3) 有时候某个文件被多次使用时,而且必须在多个目录下,我们就可以给该文件创建软链接 软连接相当于Windows下的快捷方式,有节省空间的作用,可以跨分区,文件.目录都可以做软连 ,做软连接时注意加绝对路径,否则易出错. du -sh fliename1 filename2 比较两文件大小 ln -s  做软连接 如:将/ro

linux系统下的软连接与硬链接

前几天在linux系统下安装mongoDB,然后运行脚本导入数据的时候遇到了链接库查询不到的情况,如图 1所示.当时是通过创建软连接的方式解决的这个问题.虽然,通过网上的教程解决了这个问题,但是对于软连接和硬链接始终不是很明白.趁着周末的时间补补课,将软连接和硬链接的概念.特点以及创建的限制系统的学习一下. 图 1 缺少文件的提示 Linux下的连接文件分为两种,一种是类似于windows的快捷方式的软连接,另一种是就是通常所说的硬链接.这两种链接方式都是为了实现文件的共享而存在的.下面根据自己

[Linux] Linux软连接和硬链接

转载自:http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html 1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点来进行连接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索 引节点号(Inode Index).在Linux中,多个文件名指向同

linux 软连接和硬链接的区别

linux 软连接和硬链接的区别 2011-06-27  zale的图...   阅 3345  转 23 转藏到我的图书馆 微信分享: 4点不同 : (1)软连接可以 跨文件系统 ,硬连接不可以 .实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt /root/bb 连接成功 .ln aa.txt /root/bb 失败 .(2)关于 I节点的问题 .硬连接不管有多少个,都指向的是同一个I节点,会把

Linux的软连接与硬链接

Linux的软连接相当于window系统的快捷方式,如我们桌面的QQ等. 硬连接相当于复制一个文件,但不同的是两个文件内容同步.如创建一个文件A的硬连接B, 如果我修改A里面的内容,同时B中的内容也会更新. 创建软连接的命令:ln -s  源文件  目标文件 创建硬连接的命令:ln   源文件  目标文件 硬连接不能跨区创建,比如/home 目录与/ect目录不在一个分区,a这个文件现在在/home目录中,这时你想对a文件创建硬连接到/ect目录下是不行的. 软连接可以跨区创建 Linux的软连