# Script bash et test de fichier (2)

**URL:** <https://www.debian-fr.org/t/script-bash-et-test-de-fichier-2/30110>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 12:30 UTC](https://www.debian-fr.org/t/script-bash-et-test-de-fichier-2/30110 "2016-02-21T00:30:44Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![LAV-FRED](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/da6949/32.png) [@LAV-FRED](https://www.debian-fr.org/u/LAV-FRED)\
**Post date:** [Février 21, 2016, 12:30 UTC](https://www.debian-fr.org/t/script-bash-et-test-de-fichier-2/30110/1 "2016-02-21T00:30:44Z")

</div>

Bonjour, ce topic fait suite au topic suivant :  
[http://www.debian-fr.org/script-bash-et-test-de-fichier-t31225.html](http://www.debian-fr.org/script-bash-et-test-de-fichier-t31225.html)

J’améliore ma sauvegarde avec une backup du système suivant le T&A de Ricardo (merci à toi 😉 )  
voici mon bout de mont script :

[code]# sauvegarde du système :  
# vérification de la présence du dossier /home/controle/  
if [-e /home/controle]  
then  
ls /home/controle  
else  
mkdir /home/controle  
fi

```
    # vérification de la présence du dossier /media/r-diff/backuproot 
    if [-e /media/r-diff/backuproot]
    then
    ls /media/r-diff/backuproot
    else
    mkdir /media/r-diff/backuproot
    fi

    # vérification de la présence du dossier /root/exclure 
    if [-e /root/exclure]
    then
    ls /root/exclure
    else
    echo "Erreur : le fichier /root/exclure n'existe pas, impossible de déterminer les fichiers à exclure de la sauvegarde"
    fi

    # vidange du contenu du dossier temporaire /home/controle/
    rm -r /home/controle/* /home/controle/.*
    
    # sauvegarde du système dans /media/r-diff/backuproot
    rsync -av --del --backup --backup-dir=/home/controle/ --exclude-from=/root/exclure / /media/r-diff/backuproot/ > /home/rdiff-backup/backuproot.txt 2>&[/code]

```

Bon tout marche mais mon problème est là :  
je souhaite tester la présence de plusieurs dossiers/ fichiers avant de lancer la sauvegarde et les créer si ils n’existent pas.  
Pour l’instant j’ai utilisé une condition :

`# vérification de la présence du dossier /media/r-diff/backuproot 
	    if [-e /media/r-diff/backuproot]
	    then
	    ls /media/r-diff/backuproot
	    else
	    mkdir /media/r-diff/backuproot
	    fi`

Bon, ça teste bien la présence de mon dossier et ça le crée bien s’il n’existe pas, mais je suis obligé (je ne pense pas mais je n’ai pas trouvé d’autre solution…) de rajouter un «&nbsp;ls&nbsp;» pour combler mon then, vu que seul le else m’intéresse… ou alors il faut inverser le test ou combler le «&nbsp;then&nbsp;» avec quelque chose de «&nbsp;nulle&nbsp;»…  
Une idée ??? ![:017](https://www.debian-fr.org/uploads/default/original/1X/7bbea83f89515ab7c7a738dddb86c4d4f140bd13.gif "reflechit")

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:30 UTC](https://www.debian-fr.org/t/script-bash-et-test-de-fichier-2/30110/2 "2016-02-21T00:30:45Z")

</div>

`# vérification de la présence du dossier /media/r-diff/backuproot
if [! -e /media/r-diff/backuproot]; then
       mkdir /media/r-diff/backuproot
fi`  
ou

```auto

```

---

<div class="post-metadata">

**Author:** ![LAV-FRED](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/da6949/32.png) [@LAV-FRED](https://www.debian-fr.org/u/LAV-FRED)\
**Post date:** [Février 21, 2016, 12:30 UTC](https://www.debian-fr.org/t/script-bash-et-test-de-fichier-2/30110/3 "2016-02-21T00:30:45Z")

</div>

Donc c’est le “!” qui sert à inverser le test…  
(j’apprends avec un tuto du site du zero, mais si ça a le mérite d’être bien expliqué pour quelqu’un qui ne connaît rien à la programmation c’est un peu succin, je vais chercher un livre traitant le sujet ! 😃

Merci à toi MisterFreez 😃

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:30 UTC](https://www.debian-fr.org/t/script-bash-et-test-de-fichier-2/30110/4 "2016-02-21T00:30:45Z")

</div>

[quote=“LAV-FRED”]Donc c’est le “!” qui sert à inverser le test…  
(j’apprends avec un tuto du site du zero, mais si ça a le mérite d’être bien expliqué pour quelqu’un qui ne connaît rien à la programmation c’est un peu succin, je vais chercher un livre traitant le sujet ! 😃 [/quote]

`man test` 😉

---

<div class="post-metadata">

**Author:** ![LAV-FRED](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/da6949/32.png) [@LAV-FRED](https://www.debian-fr.org/u/LAV-FRED)\
**Post date:** [Février 21, 2016, 12:30 UTC](https://www.debian-fr.org/t/script-bash-et-test-de-fichier-2/30110/5 "2016-02-21T00:30:45Z")

</div>

Merci ! 😃

---

<div class="post-metadata">

**Author:** ![BBT1](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/ecc23a/32.png) [@BBT1](https://www.debian-fr.org/u/BBT1)\
**Post date:** [Février 21, 2016, 12:30 UTC](https://www.debian-fr.org/t/script-bash-et-test-de-fichier-2/30110/6 "2016-02-21T00:30:48Z")

</div>

Tu peux aussi faire des mkdir -p…

---

<div class="post-metadata">

**Author:** ![LAV-FRED](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/da6949/32.png) [@LAV-FRED](https://www.debian-fr.org/u/LAV-FRED)\
**Post date:** [Février 21, 2016, 12:30 UTC](https://www.debian-fr.org/t/script-bash-et-test-de-fichier-2/30110/7 "2016-02-21T00:30:48Z")

</div>

En effet, je ne connaissais pas…  
Merci de vos réponses 😃
