蚂蚁递归的chmod与exec在速度方面竞争吗?

11

我想在我的build.xml文件中递归地使用chmod命令,并从这篇文章中借鉴了以下内容:

<chmod file="${basedir}/foo/**" perm="755" type="both"/>

由于该目录较深且包含大量文件,因此速度非常慢。

这个方案更加高效、更快:

<exec executable="chmod" dir="${basedir}/foo" failonerror="true">
    <arg line="-R 0755 ." />
</exec>
  • 使用 exec 有什么缺点吗? 速度很重要。
  • 如果有的话;我是否错误地使用了 chmod
1个回答

8

使用exec速度更快,因为chmod任务会收集所有文件然后对它们进行chmod。而使用exec只需要一次操作。唯一的“缺点”是你将会局限于UNIX/Linux。我用引号来表示这点无关紧要,因为chmod任务在Windows上也无法运行。

你两种方法都使用得当,选择使用exec是有道理的。


我再次阅读了man页面,不得不说除了可能使用易于从文件集中排除文件的简单语法之外,似乎没有任何有效的理由使用chmod -- 但是这也可以在exec中轻松解决。你会使用chmod做什么吗? :) - chelmertz
如果我要更改一个文件的权限或者(正如您所指出的)想要指定一个复杂(且较小)的文件集,我会使用chmod任务。 可能是因为Ant中已经引用了该文件集用于其他操作。 - Jeanne Boyarsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接