AIX 上の KornShell (ksh) で実行するシェル スクリプトを作成しています。 コマンドを使用してmkdir
ディレクトリを作成したいと思います。 しかし、ディレクトリがすでに存在する場合、何もしたくありません。 そのため、ディレクトリが存在しないことを確認するか、mkdir
既存のディレクトリを作成しようとしたときにスローされる「ファイルが存在します」エラーを抑制したいと思います。
これを最も効果的に行うにはどうすればよいでしょうか?
ベストアンサー1
試すmkdir -p
:
mkdir -p foo
これにより、存在しない中間ディレクトリも作成されることに注意してください。たとえば、
mkdir -p foo/bar/baz
ディレクトリfoo
、foo/bar
、foo/bar/baz
が存在しない場合は作成されます。
GNU などの一部の実装では、より読みやすいエイリアスとしてmkdir
include が使用されていますmkdir --parents
が、これは POSIX/Single Unix 仕様では指定されておらず、macOS、さまざまな BSD、さまざまな商用 Unix などの多くの一般的なプラットフォームでは利用できないため、使用を避ける必要があります。
親ディレクトリが存在しない場合にエラーを出し、存在しない場合はディレクトリを作成したい場合は、次のようにします。test
まずディレクトリが存在するかどうかを確認します。
[ -d foo ] || mkdir foo