私は次のパスを持っています:
/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
scp
mv
動作はここと同じです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