Только mkdir, если он не существует [дубликат]


этот вопрос уже есть ответ здесь:

в моем сценарии bash я делаю:

mkdir product;

когда я запускаю скрипт несколько раз, я получаю:

mkdir: product: File exists

в консоли.

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

5 68

5 ответов:

сделать тест

[[ -d dir ]] || mkdir dir

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

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

или

mkdir -p directory

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

использовать команду 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.

mkdir -p

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

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

mkdir -p dir;

Примечание: это также создаст все промежуточные каталоги не существуют; например,

проверить mkdir-p

или попробуйте это:-

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