2 つのフォルダーを「スマートに」結合する rsync コマンドはどれですか?

2 つのフォルダーを「スマートに」結合する rsync コマンドはどれですか?

誤って重複したフォルダーがいくつかあるので、それらを結合する必要があります。フォルダー A にファイル X が含まれ、フォルダー B にファイル Y が含まれているとします。ファイル X をフォルダー B にコピーしたいとします。しかし、もちろん、フォルダー A とフォルダー B の両方に同じファイル X が含まれるような、より複雑なケースに直面することもあります。このような場合、ファイルの最新のコピーを保持したいので、rsync は両方のファイルを比較し、元のファイルの方が古い場合はスキップし、そうでない場合は宛先が古い方なので上書きします。

rsync コマンドラインにはどのパラメータを指定すればよいですか?

これは私がグーグルで見つけたものですが、正しいとは思いません。

rsync -avz --ignore-existing src dest

どういうわけか、man ページは私には理解できません。

PS 両方のフォルダにファイルが存在する場合、古い方のファイルを宛先フォルダに上書きし、同時に古い方のファイルのコピーを保存しておくと、以前のファイルに戻った場合のバックアップとして役立ちます。

答え1

私は使うだろう:

rsync -abviuzP src/ dest/
  • -i項目別形式をオンにすると、デフォルトの形式よりも多くの情報が表示されます。
  • -b両方のフォルダに存在するrsyncバックアップファイルを作成し、~古いファイルに追加します。このサフィックスは次のように制御できます。--suffix .suf
  • -ursync 転送で、src より dest の方が新しいファイルをスキップするようにします。
  • -z圧縮をオンにします。これは、低速リンクを介して簡単に圧縮できるファイルを転送するときに便利です。
  • -Pオンになっ--partial--progress
  • --partial転送が中断された場合、rsync は部分的に転送されたファイルを保持するようにします。
  • --progress各転送の進行状況バーを表示します。大きなファイルを転送する場合に便利です。

関連情報