2016-07-08 8 views
-1

この質問を説明する最も簡単な方法は、私がbashスクリプトで持っている以下のコード行を表示することです。tar over ssh:コピー先のファイル名と場所を設定し、既存のファイルを上書きする

tar -cJf - ./my_folder | ssh [email protected] 'tar -xJf - && rm -r ./path-to-my_folder/my_folder && mv ./my_folder ./path-to-my_folder' 

私はそれがどのように機能するかは完全に理解していません。 (?何を'-'は、この文脈で意味がある)しかし、これは、それが何をするかです:

  • はメモリに圧縮されたtarアーカイブを作成し、パイプは何とか

  • ssh越しのtarデータをプッシュtarアーカイブが表示されます。 userのルートフォルダに、sshコマンドが' ... '間におけるものの実行を継続

  • 抽出され、サーバ側の古いフォルダrmを用いて除去し、Uから抽出されたフォルダを移動することによって置換されますserのルートディレクトリ

これはかなり長いことです。 tarアーカイブが正しい場所に抽出されて、rmmvコマンドが必要ないようにする方が良いでしょう。これはできますか?

注:I は、を使用できません。rsyncです。 -サインがSTDOUTを意味

tar -cJf - ./my_folder | ssh [email protected] 'tar -xJf - -C path-to-my_folder' 

+0

あなたのすべてのタールオーバーsshの質問は本当にunix.stackexchange.comまたはsuperuser.comに属しています。 SOはプログラミングに関する質問であり、通常のコマンドラインに関する質問ではありません。 – Barmar

+0

@Barmar私は同意します - 私は間違った場所であったサーバー障害についても誤って質問を投稿しました。私は移行のためにフラグを立てました – user3728501

+0

UnixとLinuxに属しているので、この質問を議論の対象にしないように投票しています –

答えて

1

はこれを試してみてください。しかし、現代のtarに実装、STDOUTので-f -がomitedすることができ、デフォルトの出力です:

tar -cJ my_folder | ssh [email protected] 'tar -xJC path-to-my_folder' 

-Jスイッチがxz圧縮を意味し、ウィッヒはアンドロイドラズベリーパイのような小さな形状(上のやり過ぎかもしれないし、あなたがgzip圧縮のための-zスイッチを使用することによって、より良いパフォーマンスを得ることができたので、)多くの埋め込みシステム:

tar -zc my_folder | ssh [email protected] 'tar -zxC path-to-my_folder' 
+0

素晴らしい - ありがとう!それは古い内容を上書きするように見えます。 – user3728501

関連する問題