Cr=c3=a9er un dossier avec shell bash uniquement si il n'existe pas

Le
G2PC
# Créer le dossier installeur si il n'existe pas.
# ~/installeur est toujours inexistant du fait d'un chemin relatif donc
toujours recréé. Utiliser -h ne change rien.
# Je suis obligé de donner le path directement /home/seo/installeur

if [ -d "/home/seo/installeur" ]; then
echo " Le dossier ~/installeur existe déjà "
sleep 4
else
echo " Le dossier ~/installeur va être créé "
sleep 4
mkdir ~/installeur
fi


NB : L'idée était de créer un dossier installeur, dans lequel charger
executer puis supprimer les scripts d'installation.
Le soucis comme indiqué en commentaire :
# ~/installeur est toujours inexistant du fait d'un chemin relatif donc
toujours recréé. Utiliser -h ne change rien.


Merci de votre aide.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Stephane Ascoet
Le #26464542
Le 13/02/2018 à 13:45, G2PC a écrit :
# Créer le dossier installeur si il n'existe pas.
# ~/installeur est toujours inexistant du fait d'un chemin relatif donc
toujours recréé. Utiliser -h ne change rien.
# Je suis obligé de donner le path directement /home/seo/installeur

Bonjour, ~ n'est pas un chemin relatif. Pour traiter ce cas, je filtre par:
Admettons que ton dossier est stocke dans la variable dossiersc, ca donne:
dossierscr=$(echo ${dossiersc:-/dev/zero} | sed -e 's#~#$HOME#' | sed -e
"s#$HOME#$HOME#")
--
Cordialement, Stephane Ascoet
Charles Plessy
Le #26464669
Le Tue, Feb 13, 2018 at 01:45:11PM +0100, G2PC a écrit :
# Créer le dossier installeur si il n'existe pas.

mkdir -p ~/installeur # Ne fait pas d'erreur si le dossier existe déjà.
Amicalement,
--
Charles Plessy
Tsurumi, Kanagawa, Japan
G2PC
Le #26464742
Le Tue, Feb 13, 2018 at 01:45:11PM +0100, G2PC a écrit :
# Créer le dossier installeur si il n'existe pas.

mkdir -p ~/installeur # Ne fait pas d'erreur si le dossier existe déjà.
Amicalement,

Erwan David disait, " Il serait plus propre d'utiliser mktemp pour créer
un nouveau répertoire qu'on effacera après, non ? "
Je ne sais pas, mais, je vais regarder.


Stéphane Ascoet, dossierscr=$(echo ${dossiersc:-/dev/zero} | sed -e
's#~#$HOME#' | sed -e "s#$HOME#$HOME#")
Cette syntaxe me semble moins familière, je conserve pour voir par la


suite.
Finalement, j'ai fais :
# Vérifier si le dossier d'installation existe, sinon, le créer.
ABS_PATH_INSTALLEUR=$(readlink -e ~/installeur)
if [ -d "$ABS_PATH_INSTALLEUR" ]; then
 echo " Démarrage - Le dossier d'installation existe "
 sleep 3
else
 echo " Chargement - Le dossier d'installation n'existe pas et va être
créé "
 sleep 3
 mkdir ~/installeur
fi
Publicité
Poster une réponse
Anonyme