Ant:找到:缺少`-exec'的参数

时间:2015-03-04 18:25:27

标签: linux ant find exec sudo

我正在尝试将此命令添加到我们的ant构建脚本中:

sudo find app/cache/ -type d -exec chmod 775 {} \;

我在build.xml中尝试过很多变化,每次都会出现相同的错误:

find: missing argument to `-exec'

以下是我的尝试:

一个

<exec executable="sudo" failonerror="true" osfamily="unix">
    <arg value="find"/>
    <arg value="app/cache/"/>
    <arg value="-type"/>
    <arg value="d"/>
    <arg value="-exec"/>
    <arg value="chmod"/>
    <arg value="775"/>
    <arg value="{}"/>
    <arg value="\;"/>
</exec>

B'/强>

<exec executable="sudo" failonerror="true" osfamily="unix">
    <arg line="find app/cache/ -type d -exec chmod 775 {} \;"/>
</exec>

我也试过在两个版本中将{}转义为\{}

更新:我甚至还试过这个,不知道我在做什么了。)

<exec executable="sudo" failonerror="false" osfamily="unix">
    <arg line="find app/cache/ -type d"/>
    <arg line="-exec chmod 775 \{} \;"/>
</exec>

2 个答案:

答案 0 :(得分:2)

显然是逃避问题,我不得不删除所有\,甚至是之前的\;

<exec executable="sudo" failonerror="true" osfamily="unix">
    <arg line="find app/cache/ -type d -exec chmod 775 {} ;"/>
</exec>

答案 1 :(得分:2)

ANT有一个chown task可以在文件集或dirset上运行。

  <target name="changeperms">
    <chmod perm="775" verbose="true">
      <dirset dir="app"/>
    </chmod>
  </target>

如果您需要更多权限,只需在sudo下运行ant build:

sudo ant changeperms