Bash parcourt les fichiers d'un répertoire

Bash Loop Through Files Directory



Dans Ubuntu, y compris Bash, les boucles ont permis d'appliquer des opérations sur plusieurs fichiers. La boucle est la chose la plus efficace car elle permet à l'utilisateur d'appliquer la même logique à l'élément à plusieurs reprises en utilisant une petite ligne de code.

Pour comprendre le concept de boucle sur les fichiers du répertoire, vous devez accéder à l'application et aux services Ubuntu. Lorsque vous disposez de certains privilèges, vous ne pouvez opérer qu'avec des fichiers et des répertoires.







Vous devriez avoir installé Bash sur le système d'exploitation Ubuntu. Dans certaines installations, il est installé par défaut lors de la mise à jour des packages. S'il est déjà installé, vous devez mettre à niveau la version car elle doit être supérieure à 4. Pour continuer le guide actuel, vous devez conserver la version supérieure à 4. Pour vérifier la version du Bash pré-installé sur votre système, utilisez le commande sur le terminal Ubuntu.



$Frapper--version



Vous devez donc effectuer certaines fonctions sur les fichiers et les répertoires. Vous pouvez exécuter les commandes expliquées ci-dessous sur n'importe quel répertoire de votre choix. Mais pour être précis, il est préférable de créer un nouveau répertoire afin que tous les biens de celui-ci directement soient facilement accessibles lorsque vous l'ouvrez.





La toute première étape consiste à créer un répertoire. Nous avons pris un exemple de nom du répertoire abc. Créez un répertoire en exécutant la commande.

$mkdirabc



Après avoir créé le répertoire, vous devez maintenant exécuter toutes les commandes dessus. Donc, après la création du répertoire, basculez vers ce répertoire. Utilisez la commande ci-dessous :

$CDabc

Après être allé dans le répertoire, créez maintenant des fichiers à l'aide de la commande tactile.

$toucherfichier1.txt

De nombreuses méthodes sont utilisées pour créer un fichier dans Ubuntu. Outre la commande touch, nous avons utilisé ici la commande echo pour créer un fichier et y ajouter le contenu collectivement en une seule commande :

$chassèrentLinux, ubuntu, Postgresql>fichier7.txt

Ce fichier est créé sur un répertoire simple qui s'exécute actuellement par défaut. Ainsi, le nom du répertoire nouvellement créé n'est pas ajouté avec l'invite de commande. Vous pouvez également créer des fichiers en utilisant une plage et une extension dans la commande tactile.

$toucherdéposer-{1..8}.SMS

En utilisant cette commande dans de nouveaux fichiers, des extensions .txt seront créées en utilisant une seule commande.

Après cela, vous pouvez maintenant parcourir le répertoire nouvellement créé. Affichez les noms de fichiers. Comme nous devons parcourir les fichiers présents dans le répertoire, nous avons besoin d'une boucle. Les boucles sont très efficaces à utiliser car elles récupèrent les données en moins de temps, nécessitant moins d'entrées. Ici, nous allons utiliser une boucle for. En utilisant cette boucle, chaque nom de fichier sera affiché dans la ligne suivante.

$pour déposer dans *;faire chassèrent $fichier;terminé

* est utilisé pour tous les fichiers présents dans ce répertoire. Cela permet à la boucle 'for' de récupérer tous les fichiers. Mais pour rendre la sortie précise, vous pouvez ajouter des termes avec le signe astérisque. Par exemple, 'file-*' est utilisé pour tous les fichiers qui commencent à partir du fichier. Et *.txt pour récupérer les fichiers qui ont des extensions .txt. Nous utiliserons ces exemples plus loin dans l'article.

Cette boucle fonctionnera de manière à récupérer tous les fichiers du répertoire, puis à afficher tous les fichiers via la commande echo. Le signe $ ici représente le nom du fichier. À partir du résultat, vous pouvez voir que chaque nom de fichier est affiché.

Après avoir vérifié les fichiers créés en affichant les noms des fichiers, il est maintenant temps de saisir la valeur dans les fichiers car les fichiers créés sont vides. Cela peut être fait manuellement en ouvrant chaque fichier dans l'éditeur de texte, puis en écrivant les données. La deuxième option consiste à saisir des données dans chaque fichier via la commande dans le terminal. Mais il faut du temps pour saisir les données dans chaque fichier via une seule commande pour chaque fichier. Mais cela peut être fait facilement et collectivement en utilisant la boucle for dans une seule commande.

$pour déposer dans *;faire chassèrent -2 $fichier Linux Ubuntu> $fichier;terminé

Après l'exécution de la commande, la valeur a été saisie dans chaque fichier que nous avons créé. Lorsqu'il est utilisé avec echo, le drapeau '-e' conservera la nouvelle ligne dans le fichier. Pour voir les données saisies, vous pouvez naviguer jusqu'au répertoire « abc ». Ouvrez maintenant n'importe quel fichier texte. Le fichier n'est plus vide.

‘$file affichera le nom du fichier en premier dans le fichier, et les données que vous avez saisies seront prévisualisées sur la deuxième ligne car est utilisé pour déplacer les mots utilisés après cela vers une autre ligne. Vous pouvez également vérifier les données saisies via la commande.

$pour déposer dans *;faire chat $fichier;terminé

La commande Cat permet de récupérer les données présentes dans tous les fichiers du répertoire.

La procédure de saisie et de récupération des données peut être effectuée via une seule commande.

$pour déposer dans *;faire chassèrent-Et$fichier programmation bash> $fichier;chat $fichier;terminé

La première étape consiste à écrire les données dans le fichier, puis à les afficher. Lorsque vous exécutez la commande, la sortie sera la suivante :

Chaque fichier contient la même valeur. C'est à cause de la boucle 'for'.

Nous connaissons la boucle pour récupérer les données et insérer les valeurs, etc., mais la boucle est également utilisée pour créer des sauvegardes. Ces fichiers ont l'extension .bak à la fin. Exécutez maintenant la commande de sauvegarde dans le shell pour voir la sauvegarde de chaque fichier.

$pour déposer dans *;faire cp $fichier $fichier.derrière;terminé;

Le mot-clé cp est utilisé pour sauvegarder tous les fichiers. Maintenant, pour voir les fichiers sur lesquels cette commande est appliquée. Nous utilisons la commande comme :

$ls- l

Maintenant, il est visible à partir de la sortie que le détail des fichiers est affiché. Date, nom de fichier, nom d'utilisateur et heure à laquelle il a également été supprimé. De plus, vous disposez d'une copie exacte de chaque fichier.

Si nous voulons seulement les fichiers jpeg. Nous l'utiliserons dans la commande

$pour déposer dans *.jpeg;faire chassèrent $fichier;terminé

Cela n'apportera que les noms des images.

Une simple recherche peut également faire la même fonction. Il récupérera tous les fichiers avec une extension .sh.

$trouve. - Nom*sh

Nous utiliserons le mot-clé find dans la boucle for.

$pour déposer dans *;fairetrouve. Déposer.*;terminé

Cela amènera tous les fichiers dans le répertoire actuel. Ceux-ci ont des extensions de .bak, .jpeg, .txt. etc.

Maintenant, si vous voulez voir le nom de tous les fichiers de répertoire et les données qu'ils contiennent, cela se fait également par la boucle 'for'.

$pour déposer dans *;faire déposer $fichier;terminé

Conclusion

Comme nous le savons, parcourir les fichiers dans n'importe quel répertoire n'est plus difficile, en utilisant des boucles dans Bash et en fonctionnant sur les systèmes d'exploitation Linux. Ce didacticiel est un guide complet pour créer, accéder et effectuer des opérations sur le répertoire à l'aide d'une boucle « for ».