mvがターゲットに同じ名前のディレクトリの存在を処理できないのはなぜですか?

mvがターゲットに同じ名前のディレクトリの存在を処理できないのはなぜですか?

mv同じ名前のディレクトリを持つ宛先にディレクトリを移動できません。

$ mv fortran/ imperative_PLs/
mv: cannot move ‘fortran/’ to ‘imperative_PLs/fortran’: Directory not empty
  1. この場合、なぜmv動作しないのですか?システムコールで説明できますかmv? (比較できますrsync

  2. mvこの場合、デザインが機能しないのはなぜですか?その理由やポイントは何ですか?

ベストアンサー1

mvそしてrsync同様のプログラムではありません。特に、mv単にオブジェクトの名前を変更しようとするのが一般的です。同じファイルシステムにある場合、内容はまったくコピーされません。

まだ実行していない場合は、imperative_PLs/fortran既存のmvディレクトリfortranを使用してツリー内の対応するポイントに名前が変更されます。

ただし、その場所にはすでにディレクトリ(コンテンツを含む)があります。名前は単一のオブジェクトのみを参照できるため、既存のディレクトリを削除するか名前を変更する必要があります。 mv何もしたくなくて中断したとしましょう。

rsync代わりに、個々のファイルとその中の他のコンテンツをコピーしてfortran既存のimperative_PLs/fortranディレクトリに配置します。

むしろ、renameこの行動は理解しやすく見えます。

おすすめ記事