web-dev-qa-db-ja.com

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

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

Rsyncコマンドラインでどのパラメーターを指定する必要がありますか?

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

rsync -avz --ignore-existing src dest

Manページはどういうわけか私を超えています。

ありがとうございました。

PSが両方のフォルダーにファイルが存在する場合、古いフォルダーを宛先フォルダーに上書きし、同時に古いフォルダーのコピーを保持することをお勧めします。前

42

私は使うだろう:

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