rsync を使用するときに、移動したフォルダーの不要な削除と再コピーを回避するにはどうすればよいでしょうか?

rsync を使用するときに、移動したフォルダーの不要な削除と再コピーを回避するにはどうすればよいでしょうか?

rsync は移動されたフォルダーを検出できず、単に削除して新しいフォルダー構造に再コピーするだけだと読みました。

マスター コピーに対して行った唯一の変更は、元のファイルを格納するためのトップ フォルダーの単純な導入です。つまり、

folder1
folder2
folder3

の中へ

top\folder1
top\folder2
top\folder3

バックアップ コピーで同じことを手動で実行し、両方のトップ フォルダーの変更時刻を何らかの方法で修正して、その後の rsync 呼び出しが正常に実行されるようにできるかどうか疑問に思っていました。

これは機能しますか? 機能する場合、どのように機能しますか? 機能しない場合は、この問題を解決するための推奨される方法は何ですか? または、そもそも異なるパラメータで rsync を実行する必要がありますか? (rsync -a --delete /mnt/SRC /mnt/DEST現在使用しているものの代わりに)

ディレクトリはかなり大きいので、不必要な再コピーはできるだけ避けたいと思います。

答え1

はい、バックアップ コピーを手動で移動してから、rsync を実行できます。変更時刻を変更する必要はありません。rsync に任せてください。

このような名前の変更は自動的に検出するのが難しいため、手動で複製するのが通常の解決策となります。

答え2

移動する場合、ファイルの変更時刻を手動で更新する必要もありません。

新しいディレクトリ構造のミラーリングを特に気にせず、ファイルだけが必要な場合は、rsync --(options) /mnt/SRC/newdir/ /mnt/DEST を実行することもできます。SRC 側に余分なスラッシュがあることに注意してください。そうしないと、すべてを新たにコピーすることになります。

答え3

提案された解決策ここうまくいきました:

rsync -vrt --size-only /src/ /dest/

--size-only オプションを指定するとrsyncタイムスタンプが無視され、-t (変更時刻を保持) を指定するとrsync宛先コピー内の不一致な変更時刻が修正されます。

関連情報