如何并行搜索文件? (我想通过parallaly搜索一百万个文件中的文件)?

时间:2015-11-04 09:39:01

标签: unix grep xargs gnu-parallel

如何并行搜索文件? (我想在一百万个文件中找到一个文件)

使用此命令执行上述操作

find . -type f -print0 | xargs -0 -P number_of_processes grep my_pattern

它给了Grep:没有这样的文件或目录,

这个命令到底在做什么?

如何进行文件的并行搜索? (甚至我试过找。-type f | parallel -j + 1 grep my_pattern

1 个答案:

答案 0 :(得分:2)

您的磁盘系统不太可能瓶颈,并行化I / O通常会导致磁盘系统速度变慢。

所以这可能是最快的:

find . | grep pattern

但是,如果您的磁盘系统比CPU更快,那么这应该可行:

find . -maxdepth 3 | grep pattern
find . -type d -maxdepth 3 | parallel 'find {} | grep pattern'

调整'3'以适合您的文件系统布局。