使用通配符复制



我试图复制ant文件夹的内容,需要保留文件的权限。

我使用了以下ant代码:

<exec executable="cp">
    <arg line="-pr env/* ." />
</exec>

当我尝试手动执行命令时,它可以工作,但是当我运行ant文件时,我得到以下错误:

deploy.add.op:
     [exec] cp: cannot access env/*
     [exec] Result: 2
BUILD SUCCESSFUL

有什么建议吗?

Ant不能展开*通配符。你需要复制每个子文件夹在它自己:

<exec executable="cp">
    <arg line="-pr env/sub1 ." />
</exec>
<exec executable="cp">
    <arg line="-pr env/sub2 ." />
</exec>
.. 

或者如果这还不够,您可以生成bash:

<exec executable="bash">
    <arg line="-c 'cp -pr env/* .'" />
</exec>

,但后者只能在安装了bash的系统上工作。

也看看rsync而不是cp。可能更好,因为它可以清理旧文件。然而,使用bashrsync这样的工具将使您的脚本绑定到*NIX系统。

相关内容

  • 没有找到相关文章

最新更新