Pendekatan naif adalah find dir1 dir2 dir3 -type d -name .git | xargs -I {} dirname {}
, tetapi itu terlalu lambat bagi saya, karena saya memiliki banyak struktur folder yang dalam di dalam repositori git (setidaknya saya berpikir bahwa ini adalah alasannya). Saya telah membaca tentang hal itu yang dapat saya gunakan pruneuntuk mencegah penemuan berulang ke direktori setelah menemukan sesuatu, tetapi ada dua hal. Saya tidak yakin bagaimana ini bekerja (maksud saya saya tidak mengerti apa yang saya prunelakukan walaupun saya sudah membaca halaman manual) dan yang kedua itu tidak akan berfungsi dalam kasus saya, karena itu akan mencegah findpengulangan ke .gitfolder tetapi tidak ke semua folder lain.
Jadi yang sebenarnya saya butuhkan adalah:
untuk semua subdirektori, periksa apakah mereka berisi .gitfolder dan jika kemudian berhenti mencari di cabang sistem file ini dan laporkan hasilnya. Akan sempurna jika ini juga akan mengecualikan direktori tersembunyi dari pencarian.
getpof .gitadalah apa yang saya gunakan. github.com/thrig/scripts/blob/master/filesys/getpof.c