GNU/Linux >> Tutoriels Linux >  >> Linux

Boucle dans les sous-répertoires et exécution d'une commande dans chacun

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

Si vous avez besoin qu'il soit récursif :

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

Cela descendra dans tous les répertoires sous le répertoire actuel et effectuera un git pull sur les sous-répertoires qui ont un répertoire .git (vous pouvez le limiter avec -maxdepth ).


Si vous avez GNU Parallel http://www.gnu.org/software/parallel/ installé, vous pouvez faire ceci :

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

Cela fonctionnera en parallèle, donc si la connexion réseau de certains des serveurs git est lente, cela peut accélérer les choses.

Regardez la vidéo d'introduction de GNU Parallel pour en savoir plus :http://www.youtube.com/watch?v=OpaiGYxkSuQ


Linux
  1. Commandes Linux :jobs, bg et fg

  2. Linux - Trouver une sous-chaîne dans des fichiers dans des sous-répertoires avec une seule commande intégrée ?

  3. Exécution de commandes Linux en arrière-plan et au premier plan

  4. Comment créer et appliquer des correctifs dans GIT à l'aide de la commande diff et apply

  5. Git et liens physiques

Comment trouver le nombre de fichiers dans un répertoire et des sous-répertoires

Définir la date et l'heure de chaque commande que vous exécutez dans l'historique de Bash

fd - Une alternative simple et rapide à la commande Find

Commande de sortie Bash et codes de sortie

Comment installer et utiliser la commande Ack dans le système Linux

Comment installer et configurer Git sur Ubuntu 20.04