Bash Boucle à travers les répertoires récursivement

Bash Boucle à travers les répertoires récursivement
Le bash shell est un outil incroyable qui offre beaucoup de facilité et de fonctionnalité terminales. Ce tutoriel rapide doit discuter de diverses façons de parcourir les répertoires et d'exécuter certaines fonctions récursivement.

La bouchage pour la boucle

Pour obtenir une boucle récursive via les répertoires, nous utiliserons des boucles bash, en particulier, A pour une boucle.

La boucle FOR est un type de boucle commun dans Bash et d'autres langages de programmation. Il itère sur une liste donnée d'éléments / options jusqu'à et exécute un ensemble de commandes.

La syntaxe générale pour la commande FOR LOOP est:

pour je dans la liste
faire
[COMMANDE]
fait;

Voici un exemple de boucle de bash est:

# / bac / bash
pour je dans 0… 10
faire
écho '$'
fait

La boucle ci-dessus imprime les valeurs de 0 à 10.

Entrée en bas de l'utilisateur

Ensuite, nous devons inciter l'utilisateur à un répertoire valide pour traverser. Pour accepter la saisie des utilisateurs, nous utilisons la commande echo dans bash.

Par exemple:

#!/ bac / bash
Echo «Entrez le répertoire»
lire Dir
cd $ dir
Echo «maintenant dans / etc»

Déplacer les fichiers (script bash)

Avec les concepts de boucles et d'entrée de l'utilisateur à l'écart, nous pouvons assembler notre shell. La première opération consiste à trouver des fichiers récursivement avec des extensions spécifiques et à les déplacer.

Voici un exemple de script pour cela:

# / bac / bash
Echo «Entrez Dir»
lire Dir
Echo «Entrez la destination»
Lire le dest
pour i dans $ (trouver $ dir -name '*.enregistrer');
faire
mv -v $ i $ dest
fait;

Le script demandera à l'utilisateur un répertoire, puis recherchera une extension spécifique. Il déplacera ensuite les fichiers vers la destination spécifiée.

Supprimer les fichiers

Le script ci-dessus peut également être modifié pour supprimer des fichiers au lieu de les déplacer. Un exemple est comme

# / bac / bash
Echo "Entrez Dir"
lire Dir
pour i dans $ (trouver $ dir -name '*.enregistrer');
faire
rm -rf $ i
fait;

Fichiers imprimés

Pour imprimer les fichiers dans un répertoire, utilisez le script comme:

# / bac / bash
Echo «Entrez Dir»
lire Dir
cd $ dir
pour i dans $ (trouver $ dir -ype f);
faire
Echo $ i;
fait;

Conclusion

Les exemples de scripts ci-dessus que vous pouvez utiliser pour faire bouclez les répertoires et effectuer une action spécifique. Il est bon de noter qu'il existe des outils développés pour effectuer de telles tâches, mais un script est une bonne façon de procéder si vous ne trouvez pas un outil approprié.