Shell script to test whether a directory exists and if not create it?
I am trying to create a script to detect whether a directory exists, and if it does not, to create it.
How can I do that?
I did some 开发者_如何学Cdigging and found a clue:
test -d directory
...will return true
or false
depending on whether the directory exists or not.
But how do I tie this together with mkdir
?
mkdir -p $directory
should do what you want. The -p
option will create any necessary parent directories. If $directory
already exists as a directory, the command does nothing, and succeeds. If $directory
is a regular file, it will remain untouched, and the command will fail with an appropriate error message.
Without the -p
option to mkdir
, the test ... || mkdir ...
strategy can fail if $directory
contains a '/', and some component of that path doesn't already exist. The test
is superfluous anyway, since mkdir
does the same test internally.
test ... || mkdir ...
精彩评论