Linux 中是否有任何方法可以在 O(1) 内计算目录(即直接子级)中的文件数(与文件数无关),而不必先列出目录?如果不是 O(1),是否有一种相当有效的方法?
我正在寻找替代方案ls | wc -l
.
readdir 并不像您想象的那么昂贵。诀窍是避免统计每个文件,并(可选)对 ls 的输出进行排序。
/bin/ls -1U | wc -l
避免在 shell 中使用别名,不对输出进行排序,并每行列出 1 个文件(将输出通过管道传输到 wc 时并非绝对必要)。
最初的问题可以改写为“目录的数据结构是否存储条目数?”,答案是否定的。没有比 readdir(2)/getdents(2) 更有效的文件计数方法了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)