2

git log親ディレクトリ内のすべてのリポジトリで実行しようとしているときに、Windows で Cmder を実行しています。

UPDATE
私のシェルは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 が先行スペースなしで引数を処理しない理由は何ですか?

4

1 に答える 1