目录中的最大inode数量?

Mar*_*zak 34 unix linux bash command ls

单个目录中是否存在最大数量的inode?

我有一个超过200万个文件的目录,无法获取该ls命令对该目录.所以现在我想知道我是否超过了Linux中的inode限制.在2 ^ 64数字限制之前是否有限制?

ton*_*ylo 54

df -i 应该告诉你在文件系统上使用和免费的inode数量.


Rob*_*obᵩ 17

试试ls -Uls -f.

ls默认情况下,按字母顺序对文件进行排序.如果你有200万个文件,那么这种排序可能需要很长时间.如果ls -U(或许ls -f),则立即打印文件名.


Jor*_*ter 10

不是.Inode限制是按文件系统,并在文件系统创建时决定.你可能会达到另一个极限,或者'ls'表现不佳.

试试这个:

tune2fs -l /dev/DEVICE | grep -i inode
Run Code Online (Sandbox Code Playgroud)

它应该告诉你各种与inode相关的信息.


Dra*_*Tux 5

你遇到的是 ls 的内部限制。这是一篇很好地解释它的文章: http://www.olark.com/spw/2011/08/you-can-list-a-directory-with-8-million-files-but-not-with- ls/


Joe*_*orn 0

你能得到文件数量的真实数量吗?它是否非常接近 2^n 边界?您是否会因为内存不足而无法保存所有文件名?

我知道在 Windows 中至少文件系统性能会随着文件夹中文件数量的增加而急剧下降,但我认为 Linux 不会遇到这个问题,至少如果您使用命令提示符的话。如果您尝试使用 nautilus 之类的工具来打开包含这么多文件的文件夹,上帝会帮助您。

我也想知道这些文件从哪里来。您能够以编程方式计算文件名吗?如果是这种情况,您也许可以编写一个小程序将它们分类到多个子文件夹中。通常列出特定文件的名称将授予您访问权限,而尝试查找该名称将失败。例如,我在 Windows 中有一个文件夹,其中包含大约 85,000 个文件,该文件夹可以正常工作。

如果这项技术成功,您可能会尝试找到一种方法使这种排序永久化,即使它只是将这个小程序作为 cron 作业运行。如果您可以在某处按日期对文件进行排序,那么它会特别有效。