scp ant copy从远程到本地并使用排除

时间:2014-09-16 08:51:26

标签: ant scp

我正在尝试使用scp中的ant任务将远程服务中的文件复制到本地。问题是,我想要排除某些扩展名为*.txt的文件,因此我尝试使用excludes标记。但它似乎不起作用。它会复制所有文件,包括扩展名为*.txt

的文件
<scp file="username:pwd@remotemachine:/path/to/files/*" todir="copycontent" trust="true">
     <fileset dir="files" >
         <exclude name="**/*.txt"/>
     </fileset>
</scp>

1 个答案:

答案 0 :(得分:4)

Ant SCP任务对您的方案有一些限制:

  • &#34; FileSet仅适用于将文件从本地计算机复制到远程计算机。&#34; (来自Ant SCP手册页)
  • SCP元素本身不提供包含/排除模式的属性

因此,从远程到本地的选择性复制选项是有限的。从本地复制到远程(使用文件集)的灵活性更高。

您可以改为将一个或多个scp块包含在一个或多个文件模式中,而不是排除*.txt

或者,如果本地系统是基于unix的,则可以选择执行rsync,如this answer to a similar question中所述。