带有空格符号

时间:2015-10-23 13:22:31

标签: ant scp

我有一个将目录复制到远程服务器的任务。问题是目标文件夹包含“空格”符号。

<scp todir="${admin_name}:${admin_password}@${admin_hostname}:/home/user/DIR HERE" trust="true">
<fileset dir="${DIR}/"> 
    <include name="server/**"/>
</fileset>

结果我得到了:

[printStackTrace] /home/myuser/install/install.xml:39: server indicated an error: scp: ambiguous target
[printStackTrace]       at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:482)
[printStackTrace]       at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:443)

当路径中没有“空格”时,它可以正常工作。 我试过了:

todir="${admin_name}:${admin_password}@${admin_hostname}:/home/user/DIR\ HERE"
todir="'${admin_name}:${admin_password}@${admin_hostname}:/home/user/DIR\ HERE'"
todir="'${admin_name}:${admin_password}@${admin_hostname}:/home/user/DIR HERE'"
todir="${admin_name}:${admin_password}@${admin_hostname}:'/home/user/DIR HERE'"

和许多其他变种,但它没有帮助...

2 个答案:

答案 0 :(得分:0)

scp行被多次解析。如果这是一个独立的scp命令,我建议在所有空格之前使用双反斜杠。当Ant配方的一部分时,您可能需要三倍反斜杠,但要试一试。

答案 1 :(得分:0)

您必须在每个空格前添加反斜杠\

<!-- Escaping the space character with a backslash character -->
<scp todir="${username}:${password}@${hostname}:/home/user/DIR\ HERE">
...
</scp>