Dans l’univers Linux, vérifier l’existence d’un fichier ou d’un dossier est une opération fondamentale pour tout scripteur Bash. Que ce soit pour automatiser des tâches système ou développer des outils, maîtriser ces techniques permet d’éviter les erreurs et d’optimiser les scripts.
Les commandes essentielles pour tester fichiers et dossiers
La commande test et son équivalent entre crochets [ ] offrent une panoplie d’options pour vérifier différents attributs des éléments du système de fichiers. Voici les principales options à connaître :
Option | Description | Emoji |
---|---|---|
-d | Vérifie si c’est un dossier | 📁 |
-f | Vérifie si c’est un fichier | 📄 |
-e | Vérifie si l’élément existe (tout type) | 🔍 |
-r | Vérifie les permissions de lecture | 👀 |
-w | Vérifie les permissions d’écriture | ✏️ |
Vérifier un dossier en pratique
Imaginons un script qui doit créer une sauvegarde dans le répertoire /var/backups. Avant toute opération, il est prudent de vérifier l’existence du dossier :
« `bash
#!/bin/bash
backup_dir= »/var/backups »
if [ -d « $backup_dir » ]; then
echo « ✅ Le dossier de backup existe »
# Ajouter ici la logique de sauvegarde
else
echo « ❌ Erreur : dossier $backup_dir manquant »
exit 1
fi
« `
Techniques avancées pour les fichiers
Pour les fichiers, l’approche est similaire mais utilise l’option -f. Voici un exemple complet avec gestion d’erreur :
« `bash
#!/bin/bash
config_file= »/etc/app/config.cfg »
if [ ! -f « $config_file » ]; then
echo « ⚠️ Fichier de configuration manquant »
cp /usr/share/app/default.cfg « $config_file »
chmod 600 « $config_file »
fi
« `
Combiner plusieurs tests
Il est possible de vérifier plusieurs conditions simultanément avec les opérateurs logiques :
- 🔹 -a : ET logique (AND)
- 🔹 -o : OU logique (OR)
- 🔹 ! : Négation
Exemple pratique :
« `bash
if [ -f « /data/file.txt » -a -r « /data/file.txt » ]; then
echo « Le fichier existe ET est lisible »
fi
« `
Optimisation des scripts Bash
Pour des scripts plus concis, on peut utiliser les opérateurs de contrôle && et || :
« `bash
[ -d « /tmp » ] && echo « Le dossier /tmp existe »
[ -f « /nonexistent » ] || echo « Fichier non trouvé »
« `
Cas d’usage | Commande Bash | Emoji |
---|---|---|
Vérifier un lien symbolique | [ -L « /path » ] | 🔗 |
Tester un socket | [ -S « /path » ] | 🔌 |
Vérifier la taille du fichier | [ -s « /path » ] | 📏 |
Ces techniques fondamentales constituent la base de scripts Bash robustes et fiables. En les maîtrisant, vous pourrez développer des outils système plus sophistiqués tout en évitant les erreurs courantes.