Отредактировано: я ошибочно представил мою проблему. Более точный пример теперь появляется ниже.
Я хотел бы рекурсивно пройти все каталоги внутри целевого каталога и остановить каждый рекурсивный вызов после того, как найден первый каталог .git.
Например, если у нас есть эти пути:
/home/code/twitter/.git/
/home/code/twitter/some_file
/home/code/twitter/some_other_file
/home/code/facebook/.git/
/home/code/facebook/another_file
/home/code/configs/.git/
/home/code/configs/some_module/.git/
/home/code/configs/another_module/.git/
/home/code/some/unknown/depth/until/this/git/dir/.git/
/home/code/some/unknown/depth/until/this/git/dir/some_file
Я хочу только эти строки в результате:
/home/code/twitter
/home/code/facebook
/home/code/configs
/home/code/some/unknown/depth/until/this/git/dir/
-maxdepth
мне здесь не поможет, потому что я не знаю, насколько глубоким будет первый .git dir для каждого подкаталога моей цели.
Я думал, что find /home/code -type d -name .git -prune
сделает это, но у меня это не работает. Что мне не хватает?