回答:
rsync
デルタ転送アルゴリズムはデフォルトでこれを行います。rsyncのマンページを引用:
説明
Rsyncは高速で非常に用途の広いファイルコピーツールです。ローカル、リモートシェルを介して別のホストとの間、またはリモートrsyncデーモンとの間でコピーできます。動作のあらゆる側面を制御し、コピーするファイルのセットを非常に柔軟に指定できる多数のオプションを提供します。デルタ転送アルゴリズムで有名です。これは、ソースファイルと宛先の既存ファイルとの差分のみを送信することにより、ネットワーク経由で送信されるデータ量を削減します。Rsyncは、バックアップとミラーリング、および日常的に使用するための改善されたコピーコマンドとして広く使用されています。
無効にしたい場合は、-W
または--whole-file
オプションを使用する必要があります。
-W、-whole-file
このオプションは、rsyncのデルタ転送アルゴリズムを無効にします。これにより、転送されたすべてのファイルが完全に送信されます。転送元と転送先のマシン間の帯域幅がディスクへの帯域幅よりも大きい場合(特に「ディスク」が実際にネットワーク化されたファイルシステムである場合)このオプションを使用すると、転送が速くなる場合があります。これは、ソースと宛先の両方がローカルパスとして指定されている場合のデフォルトですが、有効なバッチ書き込みオプションがない場合のみです。
ファイルの変更量が本当にわかっている場合は、デルタブロックサイズを調整して、このデルタ転送動作を最適化することもできます。
-B、-block-size = BLOCKSIZE
これにより、rsyncのデルタ転送アルゴリズムで使用されるブロックサイズが固定値になります。通常、更新される各ファイルのサイズに基づいて選択されます。詳細については、テクニカルレポートを参照してください。
アルゴリズム自体の詳細が必要な場合は、ここで見つけることができます:Rsyncアルゴリズム
rsync
、デフォルトでこのように動作します。マイナーな変更がファイルへのマイナーな変更であり、ファイルがリンクの両側にほぼ同一のバージョンで既に存在する限り、転送されるデータはファイルの合計サイズよりもはるかに小さいはずです。マニュアルページの最初の段落から:「ソースファイルと宛先の既存ファイルとの差分のみを送信することにより、ネットワーク経由で送信されるデータ量を削減するデルタ転送アルゴリズムで有名です。」