web-dev-qa-db-ja.com

ディレクトリをgzip、scp経由で転送、1つのコマンドで解凍する方法

私は頻繁に大きなディレクトリをscp経由で転送しますが、なんらかの方法でディレクトリを圧縮して送信し、すべてを1つに解凍できれば便利です。

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

11
macek

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

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

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

29
AaronM

@ johnshen64の回答のおかげで、私は非常に素晴らしいものを思いつくことができました

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

残念ながら、これは転送時に進行状況を示しません。この方法を使用すると、速度が大幅に向上することに気づきました。

このような転送の進行状況を表示する方法を誰かが知っているなら、私は助けていただければ幸いです:)

7
macek

そうですね、代わりにtarを使います

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

vを追加して確認できます。

Zipは同じである必要がありますが、私の意見では、tarはLinuxに対してより堅牢です。

2
johnshen64