inux文件索引节点相关概念
摘自:https://www.cnblogs.com/Dlg-Blog/p/8684352.html
一. 概念
1. inode(index node)表中包含文件系统所有文件列表
一个节点 (索引节点)是在一个表项,包含有关文件的信息( 元数据 ),包括:
-
文件类型,权限,UID,GID
-
链接数(指向这个文件名路径名称个数)
-
该文件的大小和不同的时间戳
-
指向磁盘上文件的数据块指针
-
有关文件的其他数据
-
inode 索引节点编号
2. inode 表结构
3. inode号
系统中将目录下的文件名和文件inode号之间的映射作为目录的数据存放;人们通过文件名进行操作时,系统会通过对应路径目录的inode号找到目录的inode表数据,进而通过数据指针指向目录的数据,匹配文件名,得到文件的inode号;再到inode表中找到此文件的表项,再由文件数据指针指向真正的文件数据。
i. 系统中同一分区的索引节点编号是唯一的,即在一个分区中,索引编号相同的文件指向的数据是同一个;(硬链接)
ii. 系统中每个分区的索引节点划分是独立的,不同分区的索引节点编号可能相同,但不是同一个文件;
iii. 分区中的索引节点编号是有限的;当分区中索引节点编号用完后,新建文件夹会提示系统内存不足,导致新建失败;但系统中仍有剩余磁盘空间,原因是索引节点编号不足,无法为文件分配节点编号,因而新建失败。
ls -i 查看文件节点编号 df -i 查看分区节点编号使用情况 echo file{1..500000} |xargs touch 批量新建大量文件;参数过多,touch无法直接创建 echo file{1..500000} |xargs rm 批量删除大量文件;参数过多,rm无法直接删除
4. 文件操作与inode的关系
二 . 软连接与硬链接
1. 硬链接
创建方式: ln filename filename2
2. 软连接
1. 创建方式: ln -s file_path file_link file_path :原文件绝对路径或原文件相对与 file_link 的相对路径, 推荐使用相对路径,可移植性强 2. readlink file_link 读取软连接原始文件路径 3. 软连接指向新文件 rm -f file_link 删除原软连接 ln -s newfile_path file_link 创建新软连接
本文作者:云龙
本文链接:https://www.cnblogs.com/yunlong-study/p/15079766.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步