scpは期待どおりにフォルダ構造をコピーしません。

scpは期待どおりにフォルダ構造をコピーしません。

私は次のパスを持っています:

/one/two/three/four/five

SCPが欲しいfour/five/

この場所の別のマシンに再帰します。

/zero/

次のようにしてください。

/zero/four/five

私の現在のパスは/one/two/three次のとおりです。

scp -r four/five user@bla:/zero/

ただし、ターゲットコンピュータでは次のようになります。

/zero/five/

変える:

/zero/four/five/

(rsyncがより簡単な場合は使用してもよいです。)

答え1

地元企業は創作が好きかもしれないmv four/five /zero/し、そうでないかもしれませんし、そうなることを期待する人はほとんどいません。だからあなたが「期待しない」と呼ぶのは私にとってはかなり期待されているように聞こえます。cp -r four/five /zero//zero/four/

tar提供されたパスを保存します(参照:この問題)。この事実を活用してください。

cd /one/two/three \
&& tar -cf - four/five | ssh user@bla '
   cd /zero && tar -xf -
'

答え2

scpmv動作はここと同じですcp。実行できるfourものに加えて、他のディレクトリが含まれていると仮定five

ssh user@bla 'mkdir -p /zero/four'
(cd four && scp -r five user@bla:/zero/four/)

ただコピーしてくださいfive

  • mkdir -pディレクトリがすでに存在する場合のエラーメッセージの防止
  • (cd ... )cd後で終了する必要がないように、この行をサブシェルで実行してください。four

関連情報