OS差異によるファイルコピーとディレクトリ作成の挙動の違いについて(疑問編)
ふと、Linuxのシェルを作成しなければならず久しぶりに作成していた時のこと。
「そういえばwindowsのコマンドプロンプトで、とLinuxのコマンドで動作に差異があるなぁ」と思ったことが発端で気になったのでメモ。
■ファイルコピー
Windowsの場合:
コピー先のディレクトリの途中のディレクトリが存在しない場合勝手に作成する
Linuxの場合:
コピー先のディレクトリの途中のディレクトリが存在しない場合異常終了で処理を終了する
※記憶ベースなので保証はしない。。
■ディレクトリ
Windowsの場合:
作成先のディレクトリの途中のディレクトリが存在しない場合勝手に作成する
Linuxの場合:
作成先のディレクトリの途中のディレクトリが存在しない場合異常終了で処理を終了する
※記憶ベースなので保証はしない。。
なぜこのような挙動の違いがあるのか。
動作的にはWindowsのほうが親切設計にはなっている気がする。
ただ途中のディレクトリが必ず存在する前提だったりすると、あるはずのディレクトリを勝手に作成するのは、ディレクトリが無くなったという事実に気が付けないので、その場合は異常終了でユーザーや実行者に気付かせるようにする、というのも理には適っているように思える。
どこまで親切設計で対応してあげるのか、どこから先は異常パターンとして例外処理の範疇とするのか。
JAVAのエラーハンドリングについても類似のことは言えるのかもしれない。
そのうち調べてみよう。
意外と当時の要件整理で「こっちのほうが便利じゃね?」とか「異常終了でいいでしょ?」とか言ったもん勝ちで決まっている仕様だったりして。笑(現場とかだとよくある。。。苦笑)