我正在使用 scp 将目录从一个远程服务器复制到另一个远程服务器上的新目录(即只是更改名称),例如:
scp -prq server1:dir1 server2:dir2
Run Code Online (Sandbox Code Playgroud)
如果 dir2 在 server2 上不存在,这可以正常工作,它会创建一个名为 dir2 的新目录,其中包含 server1 上 dir1 的所有内容。
当 dir2 已存在于 server2 上时,问题就出现了(注意:我无法事先知道这一点,也无法事先在 server2 上的 dir2 上进行删除)- 发生的情况是我在 dir2 中获得了一个名为 dir1 的 dir1 副本。
我确信我缺少一些基本的东西,但我似乎无法解决它。
非常感谢任何帮助!
问候,
贾尔斯
好的,我的代表不到 10 人,不能等待 8 小时,所以我得到了以下信息:
这是一个对我有用的脚本:
#!/bin/sh
echo "method 1"
scp -prq server1:dir1/* server2:dir2/ >/dev/null 2>&1
if [ "$?" -ne "0" ]; then
echo "failed ... trying method 2"
scp -prq server1:dir1 server2:dir2
fi
exit
Run Code Online (Sandbox Code Playgroud)
仍然不确定如何在单个命令中执行此操作,或者如果可能的话。
干杯@mindthemonkey,有时只是获得一个新的观点可以帮助指明方向。