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 ;
用双引号括起 {}
提供了我正在寻找的修复方法。
我在 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 ;
用双引号括起 {}
提供了我正在寻找的修复方法。