最近前同事在群里发了一个截图,用lsattr查看目录有个大写"I"的属性(ext4文件系统),不知道干啥,我一看也很蒙x。
然后网上搜索了下还真是有人遇到过的:
后面继续学习了下知道这个是正常的,囧:
当目录下的条目比较少时,一个block(默认4KB)能够存放下所有的条目时,采用线性方法存放条目。但是随着目录下的条目越来越多,一个4K页面已经存放不下的时候,EXT4会采用hash tree的方式存放。
一旦目录采用了hash tree的组织形式,如果后来目录下的条目(文件或目录)被删除,哪怕所有内容可以存放到一个4KB的页面中,EXT4也不会从hash tree的组织形式回退到线性的最执行时。
同时I标志,并不可以通过chattr设置,完全是EXT4文件系统的行为:
The 'I' attribute is used by the htree code to indicate that a directory
is being indexed using hashed trees. It may not be set or reset using
chattr(1), although it can be displayed by lsattr(1).
mark一下,要学得东西还有很多,哭: