命令scp todir带有空格符号



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

<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'"

和许多其他的变体,但它没有帮助…

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

必须在每个空格前加上反斜杠:

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

相关内容

  • 没有找到相关文章

最新更新