后面也会持续更新,学到新东西会在其中补充。
建议按顺序食用,欢迎批评或者交流!
缺什么东西欢迎评论!我都会及时修改的!
在这里真的很感谢这位老师的教学视频让迷茫的我找到了很好的学习视频
王晓春老师的个人空间-王晓春老师个人主页-哔哩哔哩视频
inode 表结构
先上一张图
粗略的理解一个硬盘的分区由两部分组成
inode 表记录以下信息
inode number 节点号 节点编号是个数据 类似于身份证号 每个文件都有与众不同的标识
文件类型
权限
UID
GID
链接数
该文件的大小不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据
文件越大速度会被受到影响 需要简接间接查找
找一个文件的流程
目录
目录是一个特殊文件,目录文件的内存保存了此目录中文件的列表(文件名)及inode number 对应关系
inode table里面不放文件名 文件名是放到目录中的
dentry
dentry中包含了文件名和对应的inode number。
这样就可以通过inode number找到inode table其对应的inode
。
创建文件
查看文件
cp和inode
rm和inode
只删除inode 相关信息 没有删除数据
所以数据恢复是有可能的
but 如果新创建了一个文件会使用free空间
覆盖之前写过的数据
inode number的复用
mv和inode
相当于 cp + rm
不同分区 inode number改变了 同一分区 inode number不改变
为什么?因为文件存放的位置在不同分区 数据块的位置也不同!同一分区的数据块不会改动
inode number到底有多少个呢?
每一个分区可以看成一个国家
若两个分区的节点编号一样是一个文件吗?中国人身份证号是123美国人的身份证号也是123那么他们是同一个人吗
查看每个分区的inode number使用率
inode number不够使用现状(面试)
提示空间快满了但df 和 df -i都可以看到空间很多为什么?(面试)
删除大文件空间不会立即释放
yum -y install lsof
lsof | grep delete
因为正在使用的文件 不会被释放
我们可以直接kill 程序来释放 但是程序不可以随意kill
大文件变小文件
cat /dev/null > /test/bigfile
总结
删除一个文件相当于回收了身份证号
软链接和硬链接
硬链接(hard)
不同文件可以使用相同编号在不同分区下
在同一分区是不能不同文件可以使用相同编号
同一个文件不能有多个节点编号
一个文件可以有多个文件名 用硬链接实现 创建硬链接实际上就是给一个文件起多个名字
链接数相当于告诉文件有几个名字
ln f1.txt f1.txt.bak
修改f1.txt文件查看f1.txt.bak变化
在磁盘中占的空间是多少呢
还是6字节 只是名字多了 节点表里面只有一条33594575
目录里面显示只是文件名不同inode号是一样的
删除源文件f1.txt其他文件会被影响吗
相当于就是少了个名字
硬链接不能跨分区
因为此分区的inode号,不能指向其他分区的数据块。
若不同分区的inode号一样也应该是不同文件不应该是相同文件
更简单的理解是分区是国家 你的身份号放到国外能用吗?当然不能对吧
文件夹不能创建硬链接
运行中数据库删除其中一个大表
在半夜的时候再把这个硬链接出来的文件给删除了
为什么目录链接数为2
.是dir1的另一个名字
链接数可以变成三吗
软连接(符号链接)soft
软链接,快捷方式的创建,可以快捷的指向另一个文件的特殊文件
-s参数,创建符号连接,软连接,快捷方式
ln -s 源文件路径 快捷方式绝对路径
链接文件有标志l 大小为6字节(指向路径大小f1.txt刚好6个字节) 颜色为蓝色 链接数不增加,节点编号也不同,说软链接和原始文件根本不是同一个文件,是两个文件相当于起了一个绰号。
删除快捷方式不影响源文件,但是把源删除会影响快捷方式
链接路径写相对路径
相对路径是相对当前工作目录的路径,特殊场景下,是相对于某目录的位置
f1.txt.link 认为 f1.txt和f1.txt.link在同一个目录里面
那么怎么做呢 我们要写的是dir1/f1.txt.link相对路径
咳咳若是太麻烦那就写绝对路径
软连接创建文件夹
假如mysql要升级
Mysql5.7升级Mysql8.0_mysql5.7升级到8 升级驱动-CSDN博客
要命的小细节/
删除原本链接文件没问题
但是删除mysql/相当于把文件夹里面东西全部删除了离谱!
假如你手快!就会出现 再回车直接完蛋!
确定你在干什么再敲回车很重要!
readlink
使用readlink 查看软链接文件本身的内容,也就是目标文件的路径
软硬区别
参考文献
4inode表的结构和文件管理底层原理和生产案例_哔哩哔哩_bilibili
5硬链接和软件文件的实现和生产案例_哔哩哔哩_bilibili
路飞学城 - 帮助有志向的年轻人通过努力学习获得体面工作
总结
本人基本上是个人理解加参考其他大佬的肯定有很多问题欢迎指正,我会及时修改。