Comment vérifier si un fichier n'existe pas dans Bash

Comment vérifier si un fichier n'existe pas dans Bash

Bash, ou le Bourne Again Shell, est une coque UNIX populaire utilisée pour les tâches de script et d'automatisation dans Linux, MacOS et d'autres systèmes de type UNIX. Une tâche courante dans les scripts bash consiste à vérifier si un fichier n'existe pas. Cela peut être utile pour des tâches telles que la création de nouveaux fichiers uniquement s'ils n'existent pas déjà, en évitant les fichiers existants lors d'un transfert de fichier ou en déclenchant des actions spécifiques en fonction de la présence de fichiers. Dans cet article, nous explorerons différentes façons de vérifier si un fichier n'existe pas dans Bash.

Méthode 1: Utilisation du 'test' commande

Le 'test' Command in Bash est un utilitaire simple et intégré qui évalue les expressions conditionnelles. Il peut être utilisé pour vérifier diverses conditions, y compris l'existence d'un fichier. Pour vérifier si un fichier n'existe pas, utilisez la syntaxe suivante:

Copier le code si le test ! -e file_path puis # effectuer des actions si le fichier n'existe pas fi
12345Copier le test Codeif ! -e file_paththen # Effectuez des actions si le fichier n'existe pas

Dans cet exemple, le '-e' Flag vérifie l'existence du fichier, tandis que le '!' nie le résultat. Si le fichier n'existe pas, les commandes dans le 'si' le bloc s'exécutera.

Méthode 2: Utilisation des crochets

Le 'test' La commande peut également être représentée à l'aide de crochets ('[' et ']'), ce qui est plus courant dans les scripts bash. Pour vérifier si un fichier n'existe pas à l'aide de crochets, utilisez la syntaxe suivante:

si [ ! -e file_path] puis # effectuer des actions si le fichier n'existe pas fi
1234si [ ! -e file_path] puis # effectuer des actions si le fichier n'existe pas

Ceci est fonctionnellement équivalent au 'test' Exemple de commande ci-dessus.

Méthode 3: Utilisation de double crochets

Bash prend également en charge les supports à double carré ('[[' et ']]') pour les expressions conditionnelles. Il s'agit d'une syntaxe plus moderne et préférée pour de nombreux utilisateurs, car il fournit des fonctionnalités supplémentaires et est plus indulgent avec l'espacement. Pour vérifier si un fichier n'existe pas en utilisant des supports carrés doubles, utilisez la syntaxe suivante:

si [[ ! -e file_path]] puis # effectuer des actions si le fichier n'existe pas fi
1234si [[ ! -e file_path]] puis # effectuer des actions si le fichier n'existe pas

Ceci est fonctionnellement équivalent aux exemples précédents mais utilise la syntaxe à double support plus moderne.

Méthode 4: Utilisation du 'si'Commande avec le'-F' drapeau

Dans certains cas, vous pouvez vérifier spécifiquement la non-existence d'un fichier régulier (par opposition à un répertoire ou à d'autres types de fichiers). Pour ce faire, utilisez le '-F' drapeau au lieu du '-e' drapeau. Cela ne renvoie pas vrai que si le fichier n'existe pas ou n'est pas un fichier régulier:

si [ ! -f file_path] puis # effectuer des actions si le fichier n'existe pas ou n'est pas un fichier régulier fi
1234si [ ! -f file_path] puis # effectuer des actions si le fichier n'existe pas ou n'est pas un fichier régulier

Conclusion

Dans cet article, nous avons discuté de quatre méthodes différentes pour vérifier si un fichier n'existe pas dans Bash. Ces méthodes peuvent être utilisées pour diverses tâches, telles que la création de nouveaux fichiers uniquement s'ils n'existent pas déjà ou ne déclenchent pas des actions spécifiques en fonction de la présence de fichiers. Selon vos préférences et vos exigences, vous pouvez choisir l'une des méthodes décrites ci-dessus pour vérifier la non-existence d'un fichier dans vos scripts bash.