ディレクトリを gzip し、scp 経由で転送し、1 つのコマンドで解凍するにはどうすればよいですか?

ディレクトリを gzip し、scp 経由で転送し、1 つのコマンドで解凍するにはどうすればよいですか?

私は頻繁に大きなディレクトリを転送しますscpが、ディレクトリを圧縮して送信し、すべてを 1 回で解凍できれば便利です。

このようなことは可能でしょうか?

答え1

rsync代わりに圧縮オプションを有効にして使用するのはいかがでしょうか-z?

rsync -az --progress source_dir/* remote_host:/destination_dir

これには、ファイルがすでに存在し、転送先に変更されていない場合は転送されないという追加の利点もあります。

答え2

@johnshen64さんの回答のおかげで、とてもいいものを思いつくことができました

tar -zc path/to/source | ssh user@remote tar -zxC path/to/destination

残念ながら、転送の進行状況は表示されません。この方法を使用すると、速度が驚くほど向上することがわかりました。

このような転送の進行状況を表示する方法を知っている方がいらっしゃいましたら、ご協力いただければ幸いです :)

答え3

まあ、私は代わりにタールを使うでしょう

tar cf - ディレクトリ | ssh サーバー 'tar xf -'

確認するにはvを追加できます。

zip も同じはずですが、私の意見では Linux では tar の方が堅牢です。

関連情報