我正在尝试将此命令添加到我们的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>
答案 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