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

DDK*_*DDK 2 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>
Run Code Online (Sandbox Code Playgroud)

sud*_*ode 5

Ant SCP任务对您的场景有一些限制:

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

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

与其排除*.txt,您还可以包含一个或多个文件模式,一个或多个 scp 块。

或者,如果本地系统是基于 unix 的,另一种选择可能是 exec rsync,如对类似问题的回答中所建议的。