我需要查看整个系统中有多少个文件。具体来说,我需要计算/
整个系统中的所有文件,最后得到一个数字。比如整个系统有 10000 个文件。
我该如何实现这一点?希望你能帮助我!
答案1
用于df -i
查看Inode 节点使用 ->IUsed
字段。
或者限制输出如下:
df --output=source,target,iused
find
请注意,和中的数字df -i
不一定匹配:
df -i
也计算目录- 链接到相同 inode(硬链接)的文件将仅计算一次
- 一些没有链接到任何目录供内部使用的特殊 inode 不计算在内。
df
不会遍历已安装的目录,例如/boot
或如果您有单独的/home
分区。使用find
,您可以使用标志获得该行为-xdev
。
我希望结果比 df -i 计数略少,因为一些文件系统(包括 ext4)有一些特殊的 inode,它们没有链接到任何目录以供内部使用。
答案2
您可以使用find /
列出所有文件。当 find 的输出被重定向时,它会将包含换行符的文件名输出为跨多行,因此您不能只计算行数。不过,您可以为每个文件输出其他内容并计算字符数:
sudo find / -type f -printf 1 | wc -c
如果没有sudo
,您可能无法访问所有路径,因此无法计算所有文件。