Dans cet article, nous allons écrire un script bash pour vérifier si les fichiers existent ou non.
Syntaxe :
- tester [expression]
- [ expression ]
- [[ expression ]]
Ici, en expression, nous écrivons paramètre et nom de fichier . Voyons quelques paramètres qui peuvent être utilisés dans l'expression : –
- – F: Il renvoie True si le fichier existe en tant que fichier commun (normal). -d : il renvoie True si le répertoire existe. -e : Il renvoie True si un type de fichier existe. -c : Il renvoie True si le fichier de caractères existe. -r : Il renvoie True si un fichier lisible existe.
- – Dans : Il renvoie True si un fichier inscriptible existe . -x : Il renvoie True si un fichier exécutable existe. -p : Il renvoie True si le fichier existe sous forme de tube. -S : Il renvoie True si le fichier existe en tant que socket. -s : il renvoie True si un fichier existe et que la taille du fichier n'est pas nulle. -L : Il renvoie True si le fichier de lien symbolique existe . -g : Il renvoie True si le fichier existe et que l'indicateur d'identification de groupe défini est défini. -G : je t renvoie True si le fichier existe et contient le même identifiant de groupe que celui en cours. -k : Il renvoie True si le fichier existe et que l'indicateur de bit collant est défini.
Il existe désormais quelques paramètres supplémentaires pour la comparaison entre les deux fichiers.
- -ef : Il renvoie True si les deux fichiers existent et indiquent le même fichier.
Exemple :
FirstFile -ef SecondFile>
- -nt : il renvoie True si FirstFile est plus récent que Secondfile.
Exemple :
java est une instance de
FirstFile -nt FileOld>
- -ot : il renvoie True si FirstFile est plus ancien que SecondFile.
Exemple:
FirstFile -ot SecondFile>
Prenons quelques exemples basés sur la syntaxe :
- [ expression ] : Tout d'abord, créez un fichier nommé FirstFile.sh et écrivez dessus le script suivant
#!/bin/bash # using [ expression ] syntax and in place # of File.txt you can write your file name if [ -f 'File.txt' ]; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Maintenant, enregistrez et exécutez le fichier à l'aide de la commande suivante
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Sortir :

Sortir
Note: Comme le File.txt est présent dans le système. Donc, il a imprimé Le fichier existe.
- test [expression] : Maintenant, modifiez le script ci-dessus dans FirstFile.sh comme suit
#!/bin/bash # using test expression syntax and in place # of File2.txt you can write your file name if test -f 'File2.txt' ; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Maintenant, enregistrez à nouveau et exécutez le fichier à l'aide de la commande suivante
boucle infinie
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Sortir :

Sortir
Note: Comme le File2.txt n'est pas présent dans le système. Donc, il a imprimé File is not exist .
- [[ expression ]] : modifiez à nouveau le script ci-dessus dans FirstFile.sh comme suit
#!/bin/bash # using [[ expression ]] syntax and in place # of File3.txt you can write your file name if test -f 'File3.txt' ; then # if file exist the it will be printed echo 'File is exist' else # is it is not exist then it will be printed echo 'File is not exist' fi>
Maintenant, enregistrez à nouveau et exécutez le fichier à l'aide de la commande suivante
$ chmod +x ./FirstFile.sh $ ./FirstFile.sh>
Sortir :

Sortir
Note: Comme le File3.txt est présent dans le système. Donc, il a imprimé Le fichier existe.
Voyons un exemple basé sur des paramètres :
- Utilisation du paramètre -d : créez un fichier nommé FirstDir.sh et écrivez-y le script suivant
!/bin/bash if [[ -d 'GFG_dir' ]] ; # Here GFG_dir is directory and in place of GFG_dir you can write your Directory name then echo 'Directory is exist' # If GFG_dir exist then it will be printed else echo 'Directory is not exist' # If GFG_dir is not exist then it will be printed fi>
Maintenant, enregistrez et exécutez le fichier à l'aide de la commande suivante
séquence de fibonacci java
$ chmod +x ./FirstDir.sh $ ./FirstDir.sh>
Sortir :

Sortir
Note: Comme le GFG_dir est présent dans le système. Ainsi, le répertoire imprimé existe.
De la même manière, vous pouvez utiliser -F , -C'est , -Dans , -r , -c ,etc. (selon leurs usages) à la place de -d pour vérifier l'existence de différents types de fichiers.
Voyons un exemple basé sur une comparaison de deux fichiers :
- En utilisant -NT paramètre
Créez un nom de fichier Comparison_File.sh et écrivez le script suivant
#!/bin/bash # New_file.txt and Old_File.txt are names of two files. if [[ 'New_File.txt' -nt 'Old_File.txt' ]] ; then # This will be printed if Condition is true echo 'New_File.txt is newer than Old_File.txt' else # This will be printed if Condition is False echo 'New_File.txt is not newer than Old_File.txt' fi>
Maintenant, enregistrez et exécutez le fichier à l'aide de la commande suivante
$ chmod +x ./Comparison_File.sh $ ./Comparison_File.sh>
Sortir :

Sortir
Note: Comme les deux fichiers sont présents dans le système et que New_File.txt est plus récent que Old_File.txt
tableau Java
Voyons l'exemple Vérifier si le fichier n'existe pas :
Créez un fichier nommé Check_Exist.sh et écrivez-y le script suivant
#!/bin/bash # using ! before -f parameter to check if # file does not exist if [[ ! -f 'GFG.txt' ]] ; then # This will printed if condition is True echo 'File is not exist' else # This will be printed if condition is False echo 'File is exist' fi>
Maintenant, enregistrez et exécutez le fichier à l'aide de la commande suivante
$ chmod +x ./Check_Exist.sh $ ./Check_Exist.sh>
Sortir :

Sortir
Note: GFG.txt n'est pas présent dans le système. Donc, il imprimera Le fichier n'existe pas
Voyons un exemple sans utiliser la condition If-else :
Créez un fichier nommé Geeks_File.sh et écrivez-y le script suivant
#!/bin/bash # If File exist then first statement will be # printed and if it is not exist then 2nd # statement will be printed. [ -f 'GFG_File.txt' ] && echo 'File is exist' || echo 'File is not exist'>
Maintenant, enregistrez et exécutez le fichier à l'aide de la commande suivante
$ chmod +x ./Geeks_File.sh $ ./Geeks_File.sh>
Sortir :

Sortir
Note: Comme le GFG_File.txt est présent dans le système. Donc, il a imprimé Le fichier existe.