Lorsque vous travaillez avec Bash et les scripts shell, vous devrez peut-être vérifier si un répertoire ou un fichier existe ou non sur votre système de fichiers.
Sur la base de cette condition, vous pouvez quitter le script ou afficher un message davertissement pour lutilisateur final par exemple.
Afin de vérifier si un un fichier ou un répertoire existe avec Bash, vous allez utiliser des « tests Bash ».
Dans ce tutoriel, vous allez apprendre à vérifier si un fichier ou un répertoire existe dans un script Bash.
Table des matières
Vérifier si le fichier existe
Afin de vérifier si un fichier existe dans Bash , vous devez utiliser loption « -f » (pour le fichier) et spécifier le fichier que vous souhaitez vérifier.
Par exemple, disons que vous voulez vérifier si le fichier « / etc / passwd » existe sur votre système de fichiers ou non.
Dans un script, vous écririez ce qui suit si instruction.
Vérifier lexistence dun fichier en utilisant des formes plus courtes
Dans certains cas, vous pouvez être intéressé à vérifier si un fichier existe ou pas directement dans votre shell Bash.
Pour vérifier si un fichier existe dans Bash en utilisant des formes plus courtes, spécifiez loption « -f » entre crochets et ajoutez la commande que vous souhaitez exécuter si elle réussit.
En utilisant lexemple utilisé précédemment, si vous voulez vérifier si le fichier « / etc / passwd » existe en utilisant des formes plus courtes, vous écrivez la commande suivante
Alors, comment cette commande fonctionne-t-elle?
Les formulaires plus courts sont étroitement liés aux statuts de sortie.
Lorsque vous exécutez une commande sur Bash, elle se termine toujours avec un statut derreur: 0 pour lerreur et les nombres supérieurs à 0 pour les erreurs (1, 2 .. 6 et ainsi de suite)
Dans ce cas, la syntaxe « & & » vérifiera si létat de sortie de la commande à gauche est égal à zéro: si tel est le cas, il exécutera la commande à droite, sinon il ne lexécutera pas.
Protip: vous pouvez utilisez « echo $ {?} » pour voir létat de sortie de la dernière commande exécutée
Vérification de plusieurs fichiers
Dans dans certains cas, vous voudrez peut-être vérifier si plusieurs fichiers existent sur votre système de fichiers ou non.
Afin de vérifier si plusieurs fichiers existent dans Bash, utilisez lindicateur « -f » et spécifiez les fichiers à vérifier séparés par lopérateur « & & ».
Vérifier si le fichier nexiste pas
Dautre part, vous voudrez peut-être vérifier si un fichier nexiste pas sur votre système de fichiers.
Afin de vérifier si un fichier nexiste pas en utilisant Bash, vous devez utiliser le « ! » symbole suivi de loption « -f » et du fichier que vous souhaitez vérifier.
De même, vous pouvez utiliser des formes plus courtes si vous souhaitez vérifier rapidement si un fichier nexiste pas directement dans votre terminal.
Notez quil est également possible de vérifier si un fichier nexiste pas en utilisant le « || » opérateur.
Le « || » Lopérateur exécutera la commande à droite si et seulement si la commande à gauche échoue (cest-à-dire sort avec un statut supérieur à zéro).
Pour tester si un fichier nexiste pas en utilisant le « || » , vérifiez simplement sil existe à laide de lindicateur « -f » et spécifiez la commande à exécuter en cas déchec.
Vérifier si le répertoire existe
Pour vérifier si un répertoire existe dans Bash, vous devez utiliser loption « -d » et spécifier le nom du répertoire à vérifier.
À titre dexemple, disons que vous voulez vérifier avec Bash si le répertoire / etc existe sur votre système.
Pour vérifier son existence, vous devez écrire le script Bash suivant
Lors de lexécution de ce script, vous obtiendrez la sortie suivante
Vérifier lexistence du répertoire en utilisant formes plus courtes
Dans certains cas, vous pouvez être intéressé à vérifier si un répertoire existe ou non directement dans votre shell Bash.
Afin de vérifier si un répertoire existe dans Bash en utilisant plus court formulaires, spécifiez loption « -d » entre crochets et ajoutez la commande que vous souhaitez exécuter si elle réussit.
Disons que vous voulez vérifier si le répertoire » / etc « existe par exemple.
En utilisant la syntaxe plus courte, vous écririez la commande suivante.
Créer un script Bash complet
Si vous vous trouvez à vérifier plusieurs fois par jour si un fichier (ou plusieurs) existe ou non sur votre système de fichiers, il se peut que pratique pour avoir un script qui peut automatiser cette tâche.
Dans cette section, vous allez créer un script Bash qui peut prendre plusieurs noms de fichiers et revenir sils existent ou non.
Sinon, un simple message de notification sera affiché sur la sortie standard.
Créez un nouveau script Bash et rendez-le exécutable en utilisant chmod.
Voici le contenu du script à utiliser pour vérifier dynamiquement si des fichiers existent.
Enregistrez votre script et ajoutez le dossier « bin » que vous venez de créer à votre variable denvironnement PATH.
Maintenant que votre script est accessible où que vous soyez sur le système, vous pouvez appeler votre script et commencer à vérifier si les fichiers existent ou non.
Génial!
Vous avez créé une personnalisation pour vérifier si des fichiers existent sur votre système de fichiers ou non.
Conclusion
Dans ce didacticiel, vous avez appris comment vérifier si un fichier existe ou non en utilisant les tests Bash et la syntaxe courte Bash.
De même, vous avez appris comment il est possible de vérifier si un répertoire existe.
Enfin, vous avez écrit un script Bash complet qui accepte des arguments dynamiques afin de vérifier si plusieurs fichiers existent ou non.
Si vous êtes intéressé par la programmation Bash ou par ladministration du système Linux, nous avons une section complète qui lui est dédiée sur le site, alors assurez-vous de la vérifier!