Bash - tester si le fichier ou le répertoire existe

Bash - tester si le fichier ou le répertoire existe

Si vous devez vérifier si un fichier ou un répertoire existe, vous pouvez utiliser la commande de test. Il reviendra vrai s'il y a un fichier ou un répertoire, et faux sinon. La commande de test peut être utilisée avec l'un des paramètres suivants:

Cet article contient peu de détails sur le test si un fichier ou un répertoire existe dans le système. Ce qui peut vous être très utile lors de l'écriture de scripts de coquille.

#1. Tester si un fichier existe

Si nous avons besoin d'ajouter du contenu ou de créer des fichiers à partir du script. Tout d'abord, assurez-vous que le fichier existe déjà ou non. Par exemple, l'un de mes scripts crée des journaux dans le fichier / TMP / TestFile.enregistrer Et nous devons nous assurer que ce fichier existe ou non

#!/ bin / bash si [-f / tmp / testfile.journal] puis écho "le fichier existe" fi
123456#!/ bin / bash si [-f / tmp / testfile.journal] puis écho "le fichier existe" fi

Les instructions ci-dessus peuvent également être écrites en utilisant le test mot-clé comme ci-dessous

#!/ bin / bash si test -f / tmp / testfile.journal puis écho "le fichier existe" fi
123456#!/ bin / bash si test -f / tmp / testfile.Logthen echo "Le fichier existe" fi

Ou en une seule ligne, nous pouvons l'écrire comme ci-dessous. Ceci est très utile lors de l'écriture dans les scripts shell.

[-F / TMP / TestFile.log] && echo "le fichier existe"
1[-F / TMP / TestFile.log] && echo "le fichier existe"

Pour ajouter d'autre part dans la commande ci-dessus

[-F / TMP / TestFile.log] && echo "le fichier existe" || Echo "Le fichier n'existe pas"
1[-F / TMP / TestFile.log] && echo "le fichier existe" || Echo "Le fichier n'existe pas"

# 2. Tester si le répertoire existe

Parfois, nous devons créer des fichiers dans un répertoire spécifique ou avoir besoin d'un répertoire pour toute autre raison, nous devons nous assurer que le répertoire existe. Par exemple, nous vérifions / tmp / mydir n'existe pas.

#!/ bin / bash si [-d / tmp / mydir] puis echo "Le répertoire existe" fi
123456#!/ bin / bash si [-d / tmp / mydir] puis echo "Le répertoire existe" fi

Les instructions ci-dessus peuvent également être écrites en utilisant le test mot-clé comme ci-dessous

#!/ bin / bash si test -d / tmp / mydir puis écho "Le répertoire existe" fi
123456#!/ bin / bash si test -d / tmp / mydirthen echo "Le répertoire existe" fi

Ou en une seule ligne, nous pouvons l'écrire comme ci-dessous

[-d / tmp / mydir] && echo "Le répertoire existe"
1[-d / tmp / mydir] && echo "Le répertoire existe"

# 3. Créer un fichier / répertoire s'il n'y a pas

C'est la meilleure pratique pour vérifier l'existence des fichiers avant de les créer d'autre, vous obtiendrez un message d'erreur. Ceci est très utile lors de la création de scripts de shell requis pour déposer une création de répertoires pendant l'exécution.

Pour le fichier:

[ ! -F / TMP / TestFile.log] && touch / tmp / testfile.enregistrer
1[ ! -F / TMP / TestFile.log] && touch / tmp / testfile.enregistrer

Pour le répertoire:

[ ! -d / tmp / mydir] && mkdir -p / tmp / mydir
1[ ! -d / tmp / mydir] && mkdir -p / tmp / mydir