ディレクトリがない場合は、testコマンドを使用してディレクトリを作成します。

ディレクトリがない場合は、testコマンドを使用してディレクトリを作成します。

このスクリプトコードがdir2を持っているかどうかを正しくテストし、存在しない場合は生成するかどうか疑問に思います。 Dir1はすでに存在します。

[ ! -d /dir1/dir2  ] && mkdir /dir1/dir2

答え1

dir1/dir2存在するがディレクトリではない場合、コマンドは失敗する可能性があります。存在をテストするには、dir1/dir2以下を使用します。-e

[ -e dir1/dir2 ] || mkdir dir1/dir2

本当にdir1/dir2ディレクトリである必要があり、その名前の一般ファイルが間違って交換される必要がある場合は、この状況をテストできます。

[ -e dir1/dir2 ] && [ ! -d dir1/dir2 ] && rm dir1/dir2
[ -d dir1/dir2 ] || mkdir dir1/dir2

関連情報