cpio
、cp
などで直接転送するのではなく、scp
などで転送するために、すべてのファイルとディレクトリをアーカイブファイルにすることの利点は何でしょうか。
転送する前に大量のファイルをtarで処理する理由はいくつかあります。
圧縮:多くの小さなファイルではなく、1つの大きなファイルを圧縮することで、より良い圧縮が得られます。少なくともscpはその場で圧縮できますが、ファイルごとに圧縮されます。
接続:少なくともscpでは、転送するファイルごとに新しい接続を確立します。これにより、多数の小さなファイルを転送する場合、スループットが大幅に低下する可能性があります。
再起動:転送プロトコルで転送の途中での再起動が許可されている場合は、転送が中断されたときにどのファイルが進行中であったかを把握するよりも簡単な場合があります。
アクセス許可:ほとんどのアーカイブプログラムでは、ファイルの所有権とアクセス許可を保持できますが、転送プログラムではサポートされていない場合があります。
ファイルの場所:宛先の場所が長いパスの終わりにある場合、または宛先が決定されていない場合は、アーカイブを宛先に転送し、ファイルの移動先を決定すると便利な場合があります。
整合性:ファイルごとに個別にチェックサムを計算するよりも、単一のアーカイブファイルのチェックサムを計算してチェックする方が簡単です。
これを行うのは、1つの大きなファイル、次に数千の小さなチャンクを処理する方が簡単な場合が多いためです。
すべてのファイルのチェックサムを計算する必要はありません。ほとんどの場合、1つのアーカイブのチェックサムを作成するだけで十分です。
また、ファイルのアクセス許可を保持する方が簡単です。
これらは私の理由のほんの一部です。
Rsyncの使用が可能であれば、最初にアーカイブする利点はほとんどなくなります。