我知道LS列出给定目录中的文件名以及LS-i显示名称和索引节点号。
但为什么速度慢呢?
编辑:大目录会发生这种情况
名称和索引节点号一起存储在目录信息块中,那么为什么查询索引节点号需要更多时间呢?
答案1
strace
显示ls -i
正在调用lstat()
每个文件名
这可以解释额外的工作。
鉴于 readdir() 已经返回了 inode 编号,这似乎不是最优的
虽然这感觉像是一个错误,但此行为是为了与挂载点保持一致。 (见托马斯的评论)
我知道LS列出给定目录中的文件名以及LS-i显示名称和索引节点号。
但为什么速度慢呢?
编辑:大目录会发生这种情况
名称和索引节点号一起存储在目录信息块中,那么为什么查询索引节点号需要更多时间呢?
strace
显示ls -i
正在调用lstat()
每个文件名
这可以解释额外的工作。
鉴于 readdir() 已经返回了 inode 编号,这似乎不是最优的
虽然这感觉像是一个错误,但此行为是为了与挂载点保持一致。 (见托马斯的评论)