我似乎无法说服scp行为。如何脚本scp -r copy?
测试数据
[email protected]:/tmp$ find /tmp/a1/
/tmp/a1/
/tmp/a1/a2
/tmp/a1/a2/a3
在发出命令
[email protected]:/tmp$ scp -r /tmp/a1 domU-12-31-38-00-E2-52.compute-1.internal:/tmp/a1
我希望在domU的-12-31-38-00-E2-52.compute-创建的目录结构1.internal,无论目录主机上是否存在目录/ tmp/a1。相反,什么SCP实际上创建具有以下结构(如果存在目标主机上的/ tmp/A1)
[email protected]:/tmp$ ssh domU-12-31-38-00-E2-52.compute-1.internal find /tmp/a1
/tmp/a1
/tmp/a1/a1
/tmp/a1/a1/a2
/tmp/a1/a1/a2/a3
如何SCP被迫复制到指定目录作为操作的根源在哪里?
稍后,我想对此操作进行脚本编写,以便主设备上给定的目录路径可以调用将同一目录结构复制到所有从设备的脚本。请注意,rsync行为(至少从我测试过的)在这种情况下是相同的。
谢谢, Maxim。
我不认为它会在所有情况下作为一般复制到奴隶实用程序的工作。你的建议意味着我需要找到一个参数的绝对路径,然后决定它是否是一个目录。如果它是在构建scp命令之前剥去一层。没有更简单的解决方案,“脚本更友好吗?” – 2010-07-31 19:41:16
您也可以将文件剥去一层。我认为这不需要有条件。 'dirname'会为你做到这一点。您需要小心路径尽头的斜杠。 – 2010-08-01 00:48:03