为什么 ls -i 比 ls 慢?

为什么 ls -i 比 ls 慢?

我知道LS列出给定目录中的文件名以及LS-i显示名称和索引节点号。

但为什么速度慢呢?

编辑:大目录会发生这种情况

名称和索引节点号一起存储在目录信息块中,那么为什么查询索引节点号需要更多时间呢?

答案1

strace显示ls -i正在调用lstat()每个文件名

这可以解释额外的工作。

鉴于 readdir() 已经返回了 inode 编号,这似乎不是最优的

虽然这感觉像是一个错误,但此行为是为了与挂载点保持一致。 (见托马斯的评论)

相关内容