xargs -P messes stdout

时间:2014-11-29 19:48:08

标签: shell find stdout xargs

我试图实现并行查找以减少大FS遍历时间:

find $1 -mindepth 2 -maxdepth 2 -type d | xargs -P5 -n1 find

运行良好,但五个(-P5)“查找”进程并行运行它们的输出,因此字符串有时会分开。如何摆脱这种行为? 应该是xargs的常见问题,但似乎没有人使用它的并行功能。

1 个答案:

答案 0 :(得分:2)

您可以使用

写入单独的文件
find $1 -mindepth 2 -maxdepth 2 -type d -print0 | xargs -0 -P5 -n1 -I{} sh -c 'find "{}" > "/tmp/{}.dirlist.txt"'

然后cat将它们放在一起。