Linux文件存储之inode、硬链接、软链接
来源:互联网 发布:java游戏代码大全 编辑:程序博客网 时间:2024/06/04 17:50
1,文件存储
文件存储在硬盘上,扇区(sector)是磁盘中最小的物理存储单位,通常情况下每个扇区的大小是512字节,但为了提高效率,操作系统在读取硬盘的时候往往是一次读取多个扇区(多个扇区组成块),所以块(block)是文件存取的最小单位;最常见的块的大小为4KB;
由于文件存储在块中,所以我们需要一些特殊的东西(inode)来索引这些块,同时也包含了文件的一些元信息,比如创建者、创建日期、创建时间等,这些特殊的东西称之为"索引节点"(inode);可以通过命令:stat 文件名 来查看一个文件的inode信息;
由于文件存储在块中,所以我们需要一些特殊的东西(inode)来索引这些块,同时也包含了文件的一些元信息,比如创建者、创建日期、创建时间等,这些特殊的东西称之为"索引节点"(inode);可以通过命令:stat 文件名 来查看一个文件的inode信息;
其中Inode:1036334是该文件对应的inode的号码;其它信息在下文说明;
因为inode也要被存储也要消耗磁盘空间,所以在磁盘被格式化的时候,操作系统将其分为两个部分,一部分用于存储inode,一部分用于存储真正的数据;由于inode在格式化磁盘的时候就被设置,且数量有限,所以有可能出现inode被用完,磁盘仍有空间却不能创建文件的情况;可以通过命令:df -i 查看每个硬盘分区的inode总数和已经使用的数量;
其实操作系统查看一个文件并不是通过文件名来打开的,而是通过inode索引到对应的块来找到目标文件,那操作系统是如何找到这些inode的呢?每个inode都有一个对应的ID号。我们打开一个文件,在系统内部实际上分为三个步骤:(1)系统找到这个文件名对应的inode号码;(2)通过inode号码找到对应的inode,获取inode信息,判断权限等;(3)通过inode索引到对应的块,读数据;可以通过命令:ls -i 文件名 来查看一个文件对应的inode号码;
硬链接、软链接、inode、block的关系如下所示(软、硬链接在下文说明):
2,硬链接和软链接
通常文件名和inode号码是一一对应的,但是Linux系统允许多个文件名指向同一个inode号码;比如我们新建文件file1,通过硬链接的方式新建file2,分别查看这两个文件的inode号码,会发现他们是一样的;那什么是硬链接?与之对应的软链接又是什么?
硬链接:
可以通过不同的文件名访问同样的内容(或是说同一个inode),对文件内容做修改,会在所有的文件名中体现出来(这更像是php中的引用传值),但是删除某一个文件名,并不会对其它的文件名产生影响,文件内容也不会被删除,只有当所有的文件名都被删除时,文件内容才会被删除,这种情况就叫做硬链接,即多个文件名索引同一个inode号码,通过stat 文件名 可以查看某个文件对应的inode被多少个文件名链接,举例如下:
通常文件名和inode号码是一一对应的,但是Linux系统允许多个文件名指向同一个inode号码;比如我们新建文件file1,通过硬链接的方式新建file2,分别查看这两个文件的inode号码,会发现他们是一样的;那什么是硬链接?与之对应的软链接又是什么?
硬链接:
可以通过不同的文件名访问同样的内容(或是说同一个inode),对文件内容做修改,会在所有的文件名中体现出来(这更像是php中的引用传值),但是删除某一个文件名,并不会对其它的文件名产生影响,文件内容也不会被删除,只有当所有的文件名都被删除时,文件内容才会被删除,这种情况就叫做硬链接,即多个文件名索引同一个inode号码,通过stat 文件名 可以查看某个文件对应的inode被多少个文件名链接,举例如下:
Links:2说明有两个文件名链接至该inode(1036334),这是因为我创建了文件file1,同时创建了该文件的一个硬链接file2(下文有具体的操作);
创建硬链接举例如下:
新建文件file1:touch file1
创建硬链接file2:ln file1 file2
查看文件信息:ls -li
创建硬链接举例如下:
新建文件file1:touch file1
创建硬链接file2:ln file1 file2
查看文件信息:ls -li
发现两个文件名对应的inode号码均为:1036334,链接到该inode的链接个数为2(-rw-rw-r--权限后的数字表示指向该inode号码的链接数)
删除file1:sudo rm file1
查看文件信息:ls -li
删除file1:sudo rm file1
查看文件信息:ls -li
文件仍存在,且inode号码也未改变,链接到该inode的链接个数变为1;
软链接:
软链接(如下文file3)其实更像windows系统下的桌面快捷方式,它本身也是一个文件(有新的inode号码),只是它保存的不是文件内容(file1),而是软链接指向的文件名的地址(file1的地址),如果删除file3,对文件内容不产生影响,删除file1,会使file3失效;
创建软链接file3:ln -s file1 file3
查看文件:ls -li
链接到1036334inode的链接数仍然为2,说明file3并未链接到1036334
删除file3:sudo rm file3
查看文件:ls -li
并未对file1产生影响;
删除file1:sudo rm file1
查看文件:ls -li
发现file3已变红失效;
阅读全文
0 0
- Linux文件存储之inode、硬链接、软链接
- Linux的inode、软链接、硬链接
- linux中inode、软链接、硬链接
- Linux的inode、软链接、硬链接
- Linux的inode、软链接、硬链接
- Linux的inode、软链接、硬链接
- Linux,Inode,ln,Inode详解,软链接,硬链接
- linux链接文件--软链接,硬链接
- linux文件系统的Inode,硬链接和软链接作用
- 【Linux】通过理解inode, 理解硬链接与软链接.
- 认识Linux系统中的inode,硬链接和软链接
- linux文件系统inode与软链接硬链接
- linux硬链接和软链接以及inode
- 【Linux】硬链接、软链接及inode详解
- inode 软连接 硬链接
- 硬链接、软链接和inode
- inode及硬链接和软链接
- inode、软链接与硬链接
- 求js数组的最大值和最小值的四种方法
- oracle 使用自定义函数查询条件效率非常低
- java调用http接口
- maven项目出现missing artifact错误解决办法
- 数据库概述
- Linux文件存储之inode、硬链接、软链接
- HDU 4283 You Are the One【区间DP】
- 二分排序
- android.mk中添加目录中所有cpp
- MySQL性能调优技巧
- Solr7 安装部署 管理界面介绍
- CentOS 7.2 安装JDK1.8(rpm版)
- Centos下配置免安装版jdk
- css样式中 border的应用