ワイルドカードを使用してディレクトリを見つけてgit statusを実行しても機能しません。

ワイルドカードを使用してディレクトリを見つけてgit statusを実行しても機能しません。

私が走るとき

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

iptp *という名前のすべてのディレクトリのリストがあります。

私が走るとき

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

わかりました。

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

git statusfindが起動された親ディレクトリで実行されているようです。

私は何が間違っていましたか?

答え1

を使用すると、-execdir一致を含むディレクトリでコマンドが実行されます。つまり名前が「iptp」で始まるディレクトリの親ディレクトリです。

あなたは.gitそれを使用することができますマッチiptp*

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

関連情報