Boucle sur les fichiers du répertoire dans Bash

Nilesh Katuwal 30 janvier 2023
  1. Boucler dans les fichiers
  2. Boucle sur le répertoire
  3. Écrire tous les fichiers dans le répertoire à l’aide de la boucle
  4. Faire des sauvegardes de tous les fichiers à l’intérieur du répertoire
Boucle sur les fichiers du répertoire dans Bash

Les boucles dans Bash ont permis d’effectuer des opérations sur de nombreux fichiers. Vous devez disposer de certains privilèges pour travailler avec des fichiers et des dossiers.

La méthode la plus efficace est la boucle, qui permet à l’utilisateur d’appliquer à nouveau la même logique à l’objet en utilisant une simple ligne de code.

Boucler dans les fichiers

Tout d’abord, nous allons créer un répertoire test et créer plusieurs fichiers à l’intérieur du répertoire. Créons cinq fichiers dans le répertoire test en tant que file1.txt, file2.txt, file3.txt, file4.txt et file5.txt.

boucle sur les fichiers du répertoire dans bash

Nous avons créé un dossier test à l’aide de mkdir et créé cinq fichiers à l’intérieur à l’aide de la commande touch.

exemple de boucle bash

Boucle sur le répertoire

Faisons une boucle sur le répertoire test nouvellement créé et affichons les noms de fichiers à l’intérieur du répertoire. Nous utiliserons la boucle for pour ce faire.

~/test$ for file in *; do echo $file; done

Accédez au répertoire test et entrez la commande ci-dessus après $. * désigne tous les fichiers à l’intérieur du répertoire.

Production :

file1.txt
file2.txt
file3.txt
file4.txt
file5.txt

Écrire tous les fichiers dans le répertoire à l’aide de la boucle

Pour écrire Hello World! dans chaque fichier, nous utiliserons la boucle for pour parcourir les fichiers et le drapeau -e dans echo pour conserver les retours à la ligne.

~/test$ for file in *; do echo -e "$file\nHello World!"> $file ; done

$file affichera le nom du fichier au début du fichier, et \n coupera la ligne, et Hello World! sera prévisualisé sur la deuxième ligne. Pour vérifier les données que nous avons ajoutées au fichier, nous devons les afficher en utilisant cat avec une boucle for.

~/test$ for file in *; do cat $file ; done

Production :

file1.txt
Hello World!
file2.txt
Hello World!
file3.txt
Hello World!
file4.txt
Hello World!
file5.txt
Hello World!

Faire des sauvegardes de tous les fichiers à l’intérieur du répertoire

L’extension .bak désigne les fichiers de sauvegarde. Nous utiliserons cp avec la boucle for pour créer des sauvegardes.

~/test$ for file in *; do cp $file "$file.bak" ; done

Vous pouvez utiliser ls -l pour lister tous les fichiers à l’intérieur du répertoire test.

~/test$ ls -l

Examinons le répertoire test.

sauvegarde bash

Vous pouvez voir que les fichiers de sauvegarde ont été créés avec l’extension suffixée .bak dans le dossier.

Article connexe - Bash Loop