shell - xargs -P 困惑标准输出

标签 shell find stdout xargs

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

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

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

最佳答案

您可以使用写入单独的文件

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

最后将它们放在一起

关于shell - xargs -P 困惑标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27206358/

相关文章:

linux - 从 find+xargs+grep 管道中排除 .svn .git 文件

linux - 如何使用shell执行从txt文件中读取的命令?

bash - rm 命令在 shell 内部不起作用

java - 找到并单击按钮 Java Robot

c - 打印到标准输出

python - 为什么向 subprocess.Popen 提供标准输入会导致写入标准输出的内容发生变化?

php - 如何将 STDOUT 重定向到 PHP 中的文件?

linux - `exec n<&0 < file` 和 `exec n<file` 命令之间的区别以及有关 exec 命令的一些一般问题

linux - 如何在 Linux 中列出以特定模式开头和结尾的文件

php - 查找/处理停滞的 PHP 脚本