Chi*_*iya 5 git bash multithreading
我有一个名为“projects”的目录,它是父目录,在我的项目附近有 200 个子目录。
现在我正在git pull通过以下脚本执行。
#!/bin/bash  
find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull && echo -e '-------------------- \n ' " \;
有没有什么有效的方法可以以多线程和更快的方式完成这个过程?
所有子目录都没有相同的 git 存储库,而且也没有submodules。所以现在我通过下面的xargs解决这个问题。
#!/bin/bash
find . -type d -name '.git' -print0 | xargs -P 40 -n 1 -0 -I '{}' sh -c "cd \"{}\"/../ && git pull && pwd && echo -e '-------------------- \n ' " \;
find .- 从当前工作目录开始查找(默认情况下递归)-type d -name '.git'- 查找所有以.git目录作为子目录的目录。-print0- 作为 xargs 输入的目录列表我还在 http://coldattic.info/shvedsky/pro/blogs/a-foo-walks-into-a-bar/posts/7找到了一些很好的帮助