How to use Bash to create a folder if it doesn't already exist?
First, in bash "[" is just a command, which expects string "]" as a last argument, so the whitespace before the closing bracket (as well as between "!" and "-d" which need to be two separate arguments too) is important:
if [ ! -d /home/mlzboy/b2c2/shared/db ]; then mkdir -p /home/mlzboy/b2c2/shared/db;fi
Second, since you are using -p switch to mkdir
, this check is useless, because this is what does in the first place. Just write:
mkdir -p /home/mlzboy/b2c2/shared/db;
and thats it.
Simply do:
mkdir /path/to/your/potentially/existing/folder
mkdir will throw an error if the folder already exists. To ignore the errors write:
mkdir -p /path/to/your/potentially/existing/folder
No need to do any checking or anything like that.
For reference:
-p, --parents no error if existing, make parent directories as needed
http://man7.org/linux/man-pages/man1/mkdir.1.html