我使用 GNU parallel 有一段时间了,主要用于 grep 大文件或在每个命令/arg 实例很慢并且需要跨核心/主机分布时为各种参数运行相同的命令。
在多个内核和主机上做的一件事也很好,那就是在大目录子树上找到一个文件。例如,像这样:
find/some/path -name 'regex'
如果 /some/path
包含许多文件和包含许多文件的其他目录,将花费很长时间。我不确定这是否容易加速。例如:
ls -R -1/一些/路径 |并行 --profile manyhosts --pipe egrep 正则表达式
我想到了类似的东西,但是 ls
搜索文件的速度会很慢。那么加快此类查找的好方法是什么?
最佳答案
如果你有 N 百个直接子目录,你可以使用:
parallel --gnu -n 10 find {} -name 'regex' ::: *
在它们中的每一个上并行运行 find
,一次十个。
但是请注意,像这样递归地列出目录是一项 IO 绑定(bind)任务,您可以获得的加速将取决于支持介质。在硬盘驱动器上,它可能会更慢(如果测试,请注意磁盘缓存)。
关于linux - 使用 GNU parallel 在巨大的目录树上加速查找命令的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23483162/