エラーが発生した場合、mvはどうしますか?

エラーが発生した場合、mvはどうしますか?

一方のディスクから別のディスクに大きなツリーを移動しようとしましたが、ディスクが小さすぎました。今、本当に理解できないことが残りました。一部のファイルは実際にはソースツリーから移動されますが、他のファイルはコピーされたばかりです。これは事実ではない可能性が高く、ターゲットディスクの空き容量を確認するときに行ったように何かを見落としているだけです。 :D

コマンドは簡単ですmv source-dir destination-dir。両方のディレクトリは異なるディスクにあります。私はそれを使用していますmv (GNU coreutils) 7.4。マニュアルページに次の質問に対する答えが見つかりません。

  • 切り捨てられたファイルを生成できますか?
  • エラーが発生すると、ソースツリーのすべての内容が削除されますか?
  • (簡単かつ迅速な方法で)回復するには?

ベストアンサー1

mvが別のファイルシステムに移動すると、まずすべてのデータが新しいファイルシステムにコピーされます。新しいデータがコピーされると、既存のデータは削除されます。つまり、移動が中断または失敗しても、ソースの場所にはまだすべてのデータを含める必要があります。

リカバリはターゲットデータのみを破壊する必要があります。 mvを再利用する代わりにrsyncを使用し、手動でrmを使用してください。

rsync -av source-dir/ dest-dir/
rm -rf source-dir

おすすめ記事