El enfoque ingenuo es find dir1 dir2 dir3 -type d -name .git | xargs -I {} dirname {}
, pero es demasiado lento para mí, porque tengo muchas estructuras de carpetas profundas dentro de los repositorios de git (al menos creo que esta es la razón). He leído sobre eso que puedo usar prune
para evitar que el hallazgo vuelva a aparecer en los directorios una vez que encuentra algo, pero hay dos cosas. No estoy seguro de cómo funciona esto (quiero decir, no entiendo qué prune
hace aunque haya leído la página de manual) y el segundo no funcionaría en mi caso, porque evitaría que se repita find
en la .git
carpeta pero no en todos otras carpetas
Entonces, lo que realmente necesito es:
para todos los subdirectorios, verifique si contienen una .git
carpeta y si es así, deje de buscar en esta rama del sistema de archivos e informe el resultado. Sería perfecto si esto también excluyera cualquier directorio oculto de la búsqueda.
getpof .git
es lo que uso github.com/thrig/scripts/blob/master/filesys/getpof.c