当存在大量文件(超过 100,000 个)时,我正在尝试找出在特定目录中查找文件数量的最佳方法。
当有那么多文件时,执行 ls | wc -l
需要相当长的时间来执行。我相信这是因为它返回了所有文件的名称。我正在尝试尽可能少地占用磁盘 I/O。
我尝试了一些 shell 和 Perl 脚本,但无济于事。我该怎么做?
最佳答案
默认情况下,ls
对名称进行排序,如果名称很多,这可能需要一段时间。在所有名称都被读取和排序之前,也不会有输出。使用 ls -f
选项关闭排序。
ls -f | wc -l
注意:这也会启用-a
,所以.
、..
等文件启动与 .
将被计算在内。
https://stackoverflow.com/questions/1427032/