mkdir -p vs if [[!-d dirname]] - PullRequest
       2

mkdir -p vs if [[!-d dirname]]

1 голос
/ 05 сентября 2011

Есть ли причина использовать

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

вместо

mkdir -p dirname

Ответы [ 3 ]

2 голосов
/ 05 сентября 2011

Первый синтаксис зависит от используемой вами оболочки, а не второй.

Поскольку оба сбоя, если dirname существует не как каталог, нет, нет никакой разницы.

1 голос
/ 05 сентября 2011
-d FILE        True if file is a directory.

-p             no error if existing, make parent directories as needed.

Если dirname не содержит родителей, тогда две команды ведут себя одинаково.Однако, если dirname содержит родителей, -d не создаст их.И [[ зависит от оболочки.

0 голосов
/ 11 января 2014

Эти две команды ksh функционально одинаковы, поскольку обе они создадут каталог с именем dirname.

mkdir -p dirname более элегантно.

...