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


11

大きなディレクトリを頻繁に転送scpするので、なんらかの方法でディレクトリを圧縮し、送信し、すべてを1つに解凍できると便利です。

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

回答:


29

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

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

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


7

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

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

残念ながら、これは転送中に進行状況を表示しません。この方法を使用すると、信じられないほど速度が向上することに気付きました。

誰かがこのような転送の進捗状況を表示する方法を知っているなら、私は助けに感謝します:)


1
tarsshのpv間に挿入します
user1686

これは、rsyncを使用できない場合に最適です
サイモンハートチャー

2

まあ、代わりにタールを使用します

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

検証するためにvを追加できます。

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


+1ご協力ありがとうございます。これは私をそこに半分道に連れて行った。暗号-文字を使用せず、gzip圧縮を使用し、宛先ディレクトリをターゲットにできるソリューションを考え出すことができました。
macek

@macek:f -ほとんどのtarバージョンはテープドライブから読み取ろうとするため、他のオペレーティングシステムでは必要になる場合があります。デフォルトでのstdinからの読み取りはGNU固有です。
user1686
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.