mkdir -pを使用してすでに存在するフォルダを作成するのは完全に安全ですか?

mkdir -pを使用してすでに存在するフォルダを作成するのは完全に安全ですか?

フォルダがあるとしましょう。

./folder/

内部には多くのファイルとサブディレクトリもあります。

私が実行したとき:

mkdir -p folder

エラーや警告も表示されません。

だから確認したかったです。このコマンドの結果に欠落または変更されたものはありますか?

答え1

mkdir -pディレクトリがすでに存在し、ディレクトリの内容が変更されない場合、エラーは発生しません。

手動入力mkdir

答え2

移植可能なスクリプトはPOSIXに依存します。mkdir~の-pオプション:

目次既存のディレクトリに名前を付けるオペランドは、エラーなしで無視する必要があります。

エラーが報告されていない場合-pオプションが操作を完了しました。

不足している中間パス名コンポーネントを作成します。

答え3

ディレクトリがすでに存在する場合、mkdir はエラーを表示します。

目次-血ディレクトリがすでに存在する場合、エラーは発生しません。また、ディレクトリは変更されていません。つまり、内容はそのまま残ります。

答え4

そう言うけど、

実行すると、mkdir -p folderエラーや警告も表示されません。

コマンドが失敗するとエラーが表示されます。この-pフラグは、ディレクトリがすでに存在する場合にのみエラーを抑制します。

touch x
mkdir -p x
mkdir: cannot create directory ‘x’: File exists

で一般ユーザーとして試してみると/etc

抑制されるのは、-pターゲットディレクトリがすでに存在するときに発生するエラーです。

mkdir y
mkdir -p y

しかし、すべての場合には、何も失わず、何も変更しません。エラーが発生すると、目的のディレクトリを取得できません。

関連情報