硬连接与软连接,inode与links
来源:互联网 发布:ctos 软件 编辑:程序博客网 时间:2024/06/06 06:52
硬连接和软连接,第一感觉就像是window的快捷方式,实则不然
要说硬连接和软连接,那就必须了解inode和block以及分区了
EXT文件系统在创建分区的时候,就划分了两块区域,inode table和date block
INODE
inode – index node ,索引节点
每一个inode固定分配了128bytes的空间
一个文件和目录对应着一个inode
多个文件可以对应一个inode
当访问一个文件的时候,发生了什么
首先会找到这个文件名对应的inode number,然后拿着inode number 找到inode,获取inode中的信息,inode中记录了文件的数据在哪些个block中储存,然后会根据着inode中的block顺序,依次取出数据
INODE的内容
用sata命令取出文件名对应的inode信息
- size :该文件的大小
- block : block的信息
- links :有多少个连接数,有多少个文件名连接上这个inode
- inode: inode number
- Access:mode 权限
- uid、gid
- atime、mtime、ctime
删除
删除一个文件的时候发生了什么?
当这个文件的links>1的时候,先links-1,不删除block中的数据,不删除inode
如果links=1,那就删除inode,而且删除block,这样的话,那文件真的是删除了
删除目录的软连接,对实际目录没有影响,删除实际目录那就是真的删除了
硬连接
ln source destination
用上面的指令可以新建一个硬连接
建一个硬连接发生了什么?
先新建一个文件名,文件名的inode number 指向源文件的inode number,然后把links+1,这就完成啦
所以硬连接文件的所有信息(权限、owner、size、time….)都和源文件一模一样
访问硬连接的过程
找出硬连接的inode number,然后读取这个inode的信息和bolck位置,接着读取block中的数据
注意
- 源文件和硬连接文件共用一个inode
- 建立硬连接,inode中的links会加一
- 所以删除硬连接对源文件不会有影响
软连接
ln -s source destination
用上面的指令可以建立一个软连接
建一个软连接发生了什么?
先建立一个文件,这个过程就会新建一个inode,软连接的inode和源文件的inode不一样
然后这个软连接文件的文件名会指向源文件
可以看到,软连接的inode和源文件的inode不一样
软连接文件的大小为4bytes,这刚好就是源文件文件名(demo)的大小,一个字幕一个byte
访问一个软连接
访问一个软连接文件的时候,会根据文件名找到源文件,然后就跟直接访问源文件一样了
注意
- 软连接的inode和源文件的inode不一样
- 软连接不会增加links,所以删除源文件(links=2)的时候,软连接就访问不了了
- 软连接文件的size=源文件的文件名的size
- 硬连接与软连接,inode与links
- Linux中inode、硬链接与软连接
- 软连接与硬连接
- 硬连接与软连接
- inode 软连接 硬链接
- inode介绍/软连接/硬连接
- inode与连接
- 硬链接与软连接
- 软连接与硬链接
- 硬链接与软连接
- 软连接 与 硬链接
- 硬链接与软连接
- 硬连接与软连接的区别
- Linux软连接与硬连接
- Linux 软连接与硬连接
- Linux 软连接与硬连接
- Linux软连接与硬连接
- Linux软连接与硬连接
- 类设计(抽象类,接口,普通类)的例子
- HDU 5682 zxa and leaf
- 笔试题73. LeetCode OJ (60)
- poi2010 切题记
- 最省时的护照办理
- 硬连接与软连接,inode与links
- pom.xml报错:web.xml is missing and <failOnMissingWebXml> is set to true
- java String字符串的==解析
- JQuery选择器
- 2016年校赛 A题—地宫寻宝 建立三位数组的DP问题
- IEEE 802.15.4协议完整中文版 - 4.4 架构
- STL练习题:Delivery
- 关于使用imageloader遇到的问题记录
- HDU-2003