Verzeichnis mit Platzhalter suchen und Git-Status ausführen funktioniert nicht

Verzeichnis mit Platzhalter suchen und Git-Status ausführen funktioniert nicht

Wenn ich laufe

find -maxdepth 1 -type d -name 'iptp*' -execdir bash -c "ls {}" \;

Ich erhalte eine Liste aller Verzeichnisse mit dem Namen iptp*

Wenn ich laufe

find -maxdepth 1 -type d -name 'iptp*' -execdir bash -c "git status {}" \;

Ich bekomme

fatal: Not a git repository (or any parent up to mount parent )
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).

Es scheint, als git statuswürde es im übergeordneten Verzeichnis ausgeführt, in dem „Find“ gestartet wurde.

Was mache ich falsch?

Antwort1

Mit -execdirwird der Befehl in dem Verzeichnis ausgeführt, das die Übereinstimmung enthält.dhdas übergeordnete Verzeichnis des Verzeichnisses, dessen Name mit „iptp“ beginnt.

Sie können stattdessen .gitmit einemWegpassend dazu iptp*:

find -maxdepth 2 -type -d -name .git -path "*/iptp*/*" -execdir git status \;

verwandte Informationen