`mv`はディレクトリを作成できますか?

`mv`はディレクトリを作成できますか?

これ質問は、.NETを使用するときにmvディレクトリが存在しない場合にディレクトリを作成する最良の方法について尋ねます。私の質問は、これが組み込み機能ではない理由ですmv。これが悪い考えである根本的な理由はありますか?

答え1

実装が複数あることを覚えておいてくださいmv。 Linuxで使用するmvソースは、OSXやSolarisなどで使用するソースとまったく同じではありません。 しかし、彼ら全員が同じように振る舞うことを願っています。-それがポイントです。基準。おそらく、mv実装時にこの目的のためのオプションを追加できます。処理が簡単すぎるので、おそらくそれほど価値がないでしょう。これは非常に小さな利点よりも深刻な否定的な結果が大きいためです。この実装されていない標準オプションを使用することはお勧めできません。標準実装を使用する他のシステムに移植可能です。

mvはいPOSIXで標準化これは行動と行動を明確に区別します。rename()システムコール。 ISO Cでは、次のrename()動作を行います。ENOENT新しい「存在しない」というフレーズを使用して、予想される動作を明確な用語で説明します。

設計を守るために、スクリプトコンテキストでデフォルトで間違ったターゲットパスで失敗するのはおそらくより優れています。考えるただ生成するだけです。これは、パス自体がしばしばユーザー入力または設定から​​来て誤差を含む可能性があるためです。この場合、スクリプトはこの時点で失敗し、ユーザーに間違ったパスを入力したことを示す必要があります。もちろん、コードを書く人は他の動作を実装し、存在しないディレクトリを作成することを選択するかもしれませんが、その逆ではなく、ユーザーがこれを担当する方が良いでしょう(呼び出しが発生しないようにするmv責任)。以前に存在しなかったディレクトリを作成しないでください。)

関連情報