148 votes

Seulement mkdir si elle n'existe pas

Dans mon bash script je le fais :

mkdir product;

Lorsque je lance le script plus d'une fois, j'obtiens :

mkdir: product: File exists

Dans la console.

Je cherche donc à ne lancer mkdir que si le répertoire n'existe pas. Est-ce possible ?

278voto

konsolebox Points 21338

Faites un test

[[ -d dir ]] || mkdir dir

Ou utilisez l'option -p :

mkdir -p dir

136voto

sr01853 Points 2861
if [ ! -d directory ]; then
  mkdir directory
fi

o

mkdir -p directory

-p assure la création si directory n'existe pas

12voto

Andy Lester Points 34051

Utilisez l'option de mkdir -p mais notez qu'elle a aussi un autre effet.

 -p      Create intermediate directories as required.  If this option is not specified, the full path prefix of each oper-
         and must already exist.  On the other hand, with this option specified, no error will be reported if a directory
         given as an operand already exists.  Intermediate directories are created with permission bits of rwxrwxrwx
         (0777) as modified by the current umask, plus write and search permission for the owner.

5voto

Paul Rubel Points 13132

mkdir -p

-p, --parents pas d'erreur si existant, crée les répertoires parents si nécessaire

5voto

Rahul Tripathi Points 1

Essayez d'utiliser ceci:-

mkdir -p dir;

NOTE:- Cela créera également tous les répertoires intermédiaires qui n'existent pas ; par exemple,

Vérifiez mkdir -p

ou essayez ceci:-

if [[ ! -e $dir ]]; then
    mkdir $dir
elif [[ ! -d $dir ]]; then
    echo "$Message" 1>&2
fi

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X