
Quando eu corro
find -maxdepth 1 -type d -name 'iptp*' -execdir bash -c "ls {}" \;
Eu recebo uma lista de todos os diretórios chamados iptp*
Quando eu corro
find -maxdepth 1 -type d -name 'iptp*' -execdir bash -c "git status {}" \;
eu recebo
fatal: Not a git repository (or any parent up to mount parent )
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Parece que git status
é executado no diretório pai onde o find foi iniciado.
O que eu cometi de errado?
Responder1
Com -execdir
, o comando é executado no diretório que contém a correspondência,ou sejao diretório pai do diretório cujo nome começa com “iptp”.
Você poderia, em vez disso, procurar .git
com umcaminhoCoincidindo iptp*
:
find -maxdepth 2 -type -d -name .git -path "*/iptp*/*" -execdir git status \;