如果没有前导空格,find -exec参数不起作用

时间:2015-10-26 13:52:27

标签: git find cmder

我在Windows上运行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中的匹配项,但是当我在{}之前运行带有前导空格的命令时,匹配将被提供给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在没有前导空格的情况下不处理参数?

1 个答案:

答案 0 :(得分:0)

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

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

{}括在双引号中提供我正在寻找的修复。