我有这个索引节点用法:
host:~ # df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/hda1 655360 655357 3 100% /
但是,如果我运行这个命令:
for i in `find . -xdev -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n
我有这个输出:
host:/ # find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
3 srv
17 root
25 bin
83 sbin
133 lib64
184 opt
985 boot
2109 etc
4487 lib
50489 usr
但它们的总和根本不匹配。我不知道索引节点用在哪里。
答案1
因为您的脚本只查找文件 ( -type f
)。
目录和符号链接有自己的索引节点,但您的搜索请求找不到它。
更正您的命令以获得如下内容:
find / -xdev \( -type f -o -type d -o -type l \) | cut -d "/" -f 2 | sort | uniq -c | sort -n
并且你会得到不同的输出。
一些忠告:不要使用这样的命令来排除索引节点问题。在大多数情况下,您会遇到消耗所有索引节点的小日志文件的问题,而您的基本问题是找到该文件。
为此,您可以使用命令-mtime
选项find
:
find / -xdev -mtime -1 -printf '%h\n' -type f | sort | uniq -c | sort -k 1 -n
此命令返回包含文件数量的目录。
你可以-type f
用\( -type f -o -type d -o -type l \)
上面提到的替换。