Подтвердить что ты не робот

Только mkdir, если он не существует

В моем bash script я делаю:

mkdir product;

Когда я запускаю script более одного раза, я получаю:

mkdir: product: File exists

В консоли.

Итак, я ищу только запустить mkdir, если каталог не существует. Возможно ли это?

4b9b3361

Ответ 1

Проведите тест

[[ -d dir ]] || mkdir dir

Или используйте опцию -p:

mkdir -p dir

Ответ 2

if [ ! -d directory ]; then
  mkdir directory
fi

или

mkdir -p directory

-p обеспечивает создание, если directory не существует

Ответ 3

Используйте параметр mkdir -p, но обратите внимание, что он имеет и другой эффект.

 -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.

Ответ 4

mkdir -p

-p, --parents               нет ошибки, если она существует, при необходимости создайте родительские каталоги

Ответ 5

Попробуйте использовать: -

mkdir -p dir;

ПРИМЕЧАНИЕ. -. Это также создаст любые промежуточные каталоги, которые не существуют; например,

Отъезд mkdir -p

или попробуйте следующее: -

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