gpt4 book ai didi

unix - 获取与模式匹配的文件数的快速方法

转载 作者:行者123 更新时间:2023-12-05 00:34:48 25 4
gpt4 key购买 nike

我目前有一个包含 8K 文件的目录。在接下来的一个月左右,这个数字将增长到 10 万以上。我需要能够计算目录中匹配特定模式的文件。模式匹配增加了大量的时间:

[XXXXXX@login-0-0 scripts]$ time ls | grep . -c
8373

real 0m0.115s
user 0m0.109s
sys 0m0.009s
[XXXXXX@login-0-0 scripts]$ time ls *.o* | grep . -c
6262

real 0m1.997s
user 0m0.121s
sys 0m0.270s

随着文件数量的不断增加,按模式计数的时间将变得过长。我能解决这个问题吗?

作为旁注,文件系统是 Lustre,我可以处理非可移植解决方案。

最佳答案

也许让你慢下来的是你的 glob 实际上被 bash 扩展并且参数被传递给 ls,所以这是一些额外的工作。这对我有用:

user@host:~/junk$ time find . | wc -l
188318

real 0m0.202s
user 0m0.076s
sys 0m0.136s

user@host:~/junk$ time find . -name '*.o' | wc -l
374

real 0m0.243s
user 0m0.160s
sys 0m0.080s

速度差别不大。请注意,这是递归的,但如果您不想要,可以设置 maxdepth。

也许是时候让我清理一些垃圾了......

关于unix - 获取与模式匹配的文件数的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10251257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com