for dir in ./*/
do
(cd $dir && hg status)
done
Digamos que eu tenha cerca de 10 hg de repositórios clonados em um diretório pai (vamos chamá-lo de "pai"). Existe alguma maneira que eu possa invocar um comando mercurial como hg status
em todos os subdiretórios em vez de executar o trabalho trabalhoso de cd
ing em cada diretório e, em seguida, invocar hg status
?
Eu experimentei o bom e velho xargs
, mas por alguma razão ele não funciona. Os comandos que usei são:
find . -maxdepth 1 -type d -print | xargs -t "hg status"
e
ls | xargs -t "hg status"
Atualização: a solução era usar nomes de usuários explícitos ao usar xargs
. Algo como:
ls | xargs -t -I {} hg status {}
Se hg
permitir a execução em paralelo, você pode usar o GNU Parallel
parallel cd {} '&&' hg status ::: ./*/
Se não, você pode adicionar -j1:
parallel -j1 cd {} '&&' hg status ::: ./*/
Assista ao vídeo de introdução para saber mais: link