2015-10-26 3 views
1

Я запускаю Cmder в Windows при попытке запустить git log во всех репозиториях в родительском каталоге.find -exec аргумент не работает без ведущего пространства

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 не похоже, чтобы найти спички с находкой, но когда я бегу команда с ведущим пространством до {}, совпадения подаются в оператор 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 не обрабатывает аргументы без ведущего пространства?

+0

Какую оболочку вы используете в Cmder? Я предполагаю git bash, но вы не указали ... (Cmder, скорее всего, случайный вопрос ...) –

ответ

0

По-прежнему не уверен в происхождении проблемы, но следующий синтаксис работает так, как ожидалось.

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

Вшита {} в двойных кавычках обеспечивает исправление я искал.

+0

Любопытно, потому что команда 'find' не видит двойные кавычки; они удаляются оболочкой. –

 Смежные вопросы

  • Нет связанных вопросов^_^