如何计算系统上的所有文件?

如何计算系统上的所有文件?

我需要查看整个系统中有多少个文件。具体来说,我需要计算/整个系统中的所有文件,最后得到一个数字。比如整个系统有 10000 个文件。

我该如何实现这一点?希望你能帮助我!

答案1

用于df -i查看Inode 节点使用 ->IUsed字段。

或者限制输出如下:

df --output=source,target,iused

find请注意,和中的数字df -i不一定匹配:

  • df -i也计算目录
  • 链接到相同 inode(硬链接)的文件将仅计算一次
  • 一些没有链接到任何目录供内部使用的特殊 inode 不计算在内。
  • df不会遍历已安装的目录,例如/boot或如果您有单独的/home分区。使用find,您可以使用标志获得该行为-xdev

查看U&L SE 上的这个答案

我希望结果比 df -i 计数略少,因为一些文件系统(包括 ext4)有一些特殊的 inode,它们没有链接到任何目录以供内部使用。

答案2

您可以使用find /列出所有文件。当 find 的输出被重定向时,它会将包含换行符的文件名输出为跨多行,因此您不能只计算行数。不过,您可以为每个文件输出其他内容并计算字符数:

sudo find / -type f -printf 1 | wc -c

如果没有sudo,您可能无法访问所有路径,因此无法计算所有文件。

相关内容