GNU/Linux >> Linux Esercitazione >  >> Linux

Ciclo delle sottodirectory ed esecuzione di un comando in ognuna

for dir in ~/projects/git/*; do (cd "$dir" && git pull); done

Se hai bisogno che sia ricorsivo:

find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull" \;

Questo scenderà in tutte le directory sotto quella corrente ed eseguirà un git pull su quelle sottodirectory che hanno una directory .git (puoi limitarla con -maxdepth ).


Se hai installato GNU Parallel http://www.gnu.org/software/parallel/ puoi farlo:

cd ~/projects/git/; ls | parallel 'cd {} && git pull'

Questo verrà eseguito in parallelo, quindi se alcune delle connessioni di rete dei server git sono lente, ciò potrebbe velocizzare le cose.

Guarda il video introduttivo per GNU Parallel per saperne di più:http://www.youtube.com/watch?v=OpaiGYxkSuQ


Linux
  1. Linux:trovare una sottostringa nei file nelle sottodirectory con un singolo comando integrato?

  2. Meno comandi e evidenziazione della sintassi?

  3. Aprire più schede del terminale ed eseguire il comando?

  4. Come creare e applicare patch in GIT usando diff e applicare Command

  5. Git e collegamenti reali

Come trovare il numero di file in una directory e sottodirectory

Imposta data e ora per ogni comando che esegui nella cronologia di Bash

fd – Un'alternativa semplice e veloce per trovare il comando

Comando di uscita Bash e codici di uscita

Come installare e utilizzare il comando Ack nel sistema Linux

Come installare e configurare Git su Ubuntu 20.04