mv
あるパーティションから別のパーティションにディレクトリ(複数のファイルを含む)を移動するプログラムを実行しています。mv
ディレクトリ内の個々のファイルを1つずつ移動している間、ソースパーティションの空き容量は変わりませんが、ターゲットパーティションの空き容量は小さくなることを確認しました。
ソースパーティションとターゲットパーティションの空き容量の合計が同じままになるのではなく、なぜこれが機能するのですか?
ベストアンサー1
POSIXが定義したように、MVソースファイルはターゲットパスにコピーされ、問題がなければソースファイルは削除されます。
source_fileをルートとするファイル階層を、ターゲットパスをルートとするファイル階層にコピーする必要があります。
source_fileをルートとするファイル階層を削除する必要があります。何らかの理由で失敗した場合、mvは標準エラーに診断メッセージを書き込み、現在のsource_fileに対してもはや処理を実行せず、残りのsource_fileを処理し続けます。
同じファイルシステムから移動する場合は、ファイルシステムのある場所から別の場所にアイテムを移動するだけです。
移動中に問題が発生してもソースファイルが失われないようにします。