我正在尝试使用ant
复制文件夹的内容,并且需要保留文件的权限。
我使用以下ant
代码执行此操作:
<exec executable="cp">
<arg line="-pr env/* ." />
</exec>
当我手动尝试该命令时,它可以工作,但是当我运行ant文件时,我收到以下错误:
deploy.add.op:
[exec] cp: cannot access env/*
[exec] Result: 2
BUILD SUCCESSFUL
有什么建议吗?
答案 0 :(得分:4)
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
。可能会更好,因为它可以清理旧文件。但是,使用bash
和rsync
等工具会使您的脚本绑定到* NIX系统。