find -exec 参数在没有前导 space 的情况下不起作用

find -exec argument doesn't work without a leading space

我在 Windows 上 运行ning Cmder,同时尝试 运行 git log 父目录中的所有回购。

更新
我的 shell 是 gitbash 版本 1.9.4.msysgit.0

当我运行:
find . -name ".git" -type d -maxdepth 2 -exec echo git --git-dir={} log ;

git --git-dir= log
git --git-dir= log
git --git-dir= log

exec 似乎没有从 find 中找到匹配项,但是当我 运行 在 {} 之前带有前导 space 的命令时,匹配项被提供给 exec语句,但 git.

的语法不正确

find . -name ".git" -type d -maxdepth 2 -exec echo git --git-dir= {} log ;

git --git-dir= ./repo1/.git log
git --git-dir= ./repo2/.git log
git --git-dir= ./repo3/.git log

知道为什么 -exec 不处理没有前导 space 的参数吗?

仍然不确定问题的根源是什么,但以下语法按预期工作。

find . -name ".git" -type d -maxdepth 2 -exec echo git --git-dir="{}" log ;

用双引号括起 {} 提供了我正在寻找的修复方法。