for dir in ~/projects/git/*; do (cd "$dir" && git pull); done
Pokud potřebujete, aby byl rekurzivní:
find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull" \;
Tím se sestoupí do všech adresářů pod aktuálním a provede se git pull na ty podadresáře, které mají adresář .git (můžete to omezit pomocí -maxdepth
).
Pokud máte nainstalovaný GNU Parallel http://www.gnu.org/software/parallel/, můžete to udělat:
cd ~/projects/git/; ls | parallel 'cd {} && git pull'
Toto poběží paralelně, takže pokud je připojení některých serverů git k síti pomalé, může to věci urychlit.
Podívejte se na úvodní video pro GNU Parallel a dozvíte se více:http://www.youtube.com/watch?v=OpaiGYxkSuQ
Multiplatformní souborový systém
Jaký je rozdíl mezi Mark for Removal a Mark for Complete Removal v Synaptic Package Manager?