查找问题原因:
希望计算:
自动计算 目录下 接点数 包括子目录
纠正两个错误概念:
1。ls -l 中第二列是indoe数 ,应该是硬连接数
2。ls -i显示的是目录或者文件的inode号
3。inode概念
4.补充 (硬连接的inode号 和连接的目标文件inode号是一个。 指的是同一个文件。而软连接是新建立一个指针文件,所以是新连接号)
这也是为什么 硬连接无法跨越分区 建立,因为不同的分区是使用不同的超级块 来存储inode信息
目录drwx中
ls -l 中含义
-rw-r--r-- 1 root root 5 Aug 16 15:47 a
-rw-r--r-- 2 52400 24067 5715 Nov 24 2004 abc
-rw-r--r-- 1 root root 17 Aug 16 14:48 a.htm
-rw-r--r-- 1 root root 164 Oct 9 15:32 a.sh
drwxr-xr-x 7 52400 24067 4096 Oct 9 15:29 phpadmin
drwxr-xr-x 3 root root 4096 Aug 16 15:03 setup
1。
其中第二列表示的是硬连接数目,强调:几不是字节数,也不是inode数.
一般文件的硬连接数都是1 ,除非做了新的硬连接.而目录硬连接数 是当前目录下所包含的目录数目+2(2是. 和
.. 不包括子目录) ,如:
setup 是3表示在setup下的子目录只有一个(3-2),我们ls看看
ls setup/ -l
total 4
drwxr-xr-x 7 root root 4096 Aug 16 15:16 mysql
同理 该mysql下目录应该有5个
2。
第二个问题:
ls -i
97348 -rw-r--r-- 1 root root 5 Aug 16 15:47 a
97347 -rw-r--r-- 1 root root 17 Aug 16 14:48 a.htm
97349 -rw-r--r-- 1 root root 164 Oct 9 15:32 a.sh
502945 drwxr-xr-x 7 52400 24067 4096 Oct 9 15:29 phpadmin
129793 drwxr-xr-x 3 root root 4096 Aug 16 15:03 setup
3。知道了一个文件和目录 都只占用一个inode
mke2fs -i 1048576 /dev/hda11
-i 这个参数的实际作用是 确定该分区hda11 实际的 inode数字,如上-i 1048576 对于一个128M的分区,只
能有128/1 (1M=1048576 )个inode,即表示 inode数 等于128 该分区内 只能建立128个文件/目录。在建立虽
然有空间 但是已经没有节点了。默认 -b 4096表示 一个文件 占用了4K,那么
如果 有128个文件 只占用了 128*4的空间 512K的空间,对于有128M的分区 却不能再建立文件了,因为没有节
点了。
所以 如果-i中设置太大 那么会造成如上 inode不够空间还剩余的情况 而 -b甚至的太大 会出现 分区碎片太
多的情况。
一个inode描述了一个文件中的数据占用了哪些块以及文件的访问权限、文件的修改时间和文件的类型。
EXT2文件系统中的每一个文件都用一个inode描述,而每一个inode都用一个独一无二的数字标识。文件系统的
inode都放在一起,在inode表中。
4.补充 (硬连接的inode号 和连接的目标文件inode号是一个。 指的是同一个文件。而软连接是新建立一个指针文件,所以是新连接号)
这也是为什么 硬连接无法跨越分区 建立,因为不同的分区是使用不同的超级块 来存储inode信息
所以对于一个文件只有一个inode号,而一个inode号却可以有多个文件名和之对应。