【发布时间】:2011-04-11 18:05:38
【问题描述】:
Linux 中是否有任何方法可以在 O(1) 中(与文件数无关)计算目录中的文件数(即直接子级),而不必先列出目录?如果不是 O(1),有没有合理有效的方法?
我正在寻找ls | wc -l 的替代品。
【问题讨论】:
-
ls| wc -l的哪一部分不是 O(1)? -
ls | wc -l 将导致 ls 对所有文件执行 opendir()、readdir() 和可能的 stat()。这通常至少是 O(n)。
-
@halfdan: ls 输出所有文件,所以是 O(n)
-
是的,我的错。我在想 O(1) 和 O(n) 是一样的,虽然我应该更清楚。
-
你不能只使用 shell globbing 吗?
标签: linux file shell directory counting