Boucle sur les fichiers du répertoire dans Bash
- Boucler dans les fichiers
- Boucle sur le répertoire
- Écrire tous les fichiers dans le répertoire à l’aide de la boucle
- Faire des sauvegardes de tous les fichiers à l’intérieur du répertoire
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
.
Nous avons créé un dossier test
à l’aide de mkdir
et créé cinq fichiers à l’intérieur à l’aide de la commande touch
.
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
.
Vous pouvez voir que les fichiers de sauvegarde ont été créés avec l’extension suffixée .bak
dans le dossier.