Script bash et test de fichier (2)

Bonjour, ce topic fait suite au topic suivant :
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 :wink: )
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 “ls” pour combler mon then, vu que seul le else m’intéresse… ou alors il faut inverser le test ou combler le “then” avec quelque chose de “nulle”…
Une idée ??? :017

# 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

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 ! :smiley:

Merci à toi MisterFreez :smiley:

[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 ! :smiley: [/quote]

man test :wink:

Merci ! :smiley:

Tu peux aussi faire des mkdir -p…

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