Ответ 1
Проведите тест
[[ -d dir ]] || mkdir dir
Или используйте опцию -p:
mkdir -p dir
В моем bash script я делаю:
mkdir product;
Когда я запускаю script более одного раза, я получаю:
mkdir: product: File exists
В консоли.
Итак, я ищу только запустить mkdir, если каталог не существует. Возможно ли это?
Проведите тест
[[ -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, --parents нет ошибки, если она существует, при необходимости создайте родительские каталоги
Попробуйте использовать: -
mkdir -p dir;
ПРИМЕЧАНИЕ. -. Это также создаст любые промежуточные каталоги, которые не существуют; например,
Отъезд mkdir -p
или попробуйте следующее: -
if [[ ! -e $dir ]]; then
mkdir $dir
elif [[ ! -d $dir ]]; then
echo "$Message" 1>&2
fi