Bearbeitet: Ich habe mein Problem fälschlicherweise falsch dargestellt. Ein genaueres Beispiel wird unten angezeigt.
Ich möchte alle Verzeichnisse in einem Zielverzeichnis rekursiv durchsuchen und jeden rekursiven Aufruf stoppen, nachdem das erste .git-Verzeichnis gefunden wurde.
Zum Beispiel, wenn wir diese Pfade haben:
/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
Ich möchte nur diese Zeilen im Ergebnis:
/home/code/twitter
/home/code/facebook
/home/code/configs
/home/code/some/unknown/depth/until/this/git/dir/
Das -maxdepth
hilft mir hier nicht weiter, weil ich nicht weiß, wie tief das erste .git-Verzeichnis für jedes Unterverzeichnis meines Ziels sein wird.
Ich dachte, ich find /home/code -type d -name .git -prune
würde es tun, aber es funktioniert nicht für mich. Was vermisse ich?