对给定目录中的所有目录调用 mercurial 命令

对给定目录中的所有目录调用 mercurial 命令

假设我在父目录(我们称之为“父目录”)中克隆了大约 10 个 hg 存储库。有什么方法可以像hg status在所有子目录上一样调用 mercurial 命令,而不是执行繁琐的操作,cd进入每个目录然后调用hg status

我确实尝试过旧方法xargs,但由于某种原因,它失败了。我使用的命令是:

find . -maxdepth 1 -type d -print | xargs -t "hg status"

ls | xargs -t "hg status"

更新:解决方案是在使用时使用显式名称持有者xargs。例如:

ls | xargs -t -I {} hg status {}

答案1

for dir in ./*/
do
  (cd $dir && hg status)
done

答案2

如果hg允许并行运行,则可以使用 GNU Parallel

parallel cd {} '&&' hg status ::: ./*/

如果没有,你可以添加-j1:

parallel -j1 cd {} '&&' hg status ::: ./*/

观看介绍视频以了解更多信息:http://www.youtube.com/watch?v=OpaiGYxkSuQ

相关内容