2011-08-03 28 views
10

我想在我的build.xml遞歸chmod和借用this post如下:在速度方面,Ant的遞歸chmod可以與exec進行競爭嗎?

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

這是令人難以置信的緩慢,因爲該目錄是深,包括大量的文件。

這工作得更好更快&:

<exec executable="chmod" dir="${basedir}/foo" failonerror="true"> 
    <arg line="-R 0755 ." /> 
</exec> 
  • 是否有使用exec的任何缺點?速度很重要。
  • 如果是; 我錯誤地使用了chmod

回答

7

執行速度更快,因爲chmod任務正在收集所有文件,然後chmod'ng它們。使用exec它是一個操作。使用exec唯一的「缺點」是它將你與UNIX/Linux聯繫起來。我使用引號,因爲chmod任務無法在Windows上運行,所以這是一個有爭議的問題。

您正在使用正確的,並與exec一起使用是有道理的。

+0

我重新閱讀手冊頁,我必須說,似乎沒有什麼合理的理由使用'chmod',也許簡單的語法從文件集中排除文件 - 但這很容易解決在'exec'中也是如此。你會使用'chmod'做什麼? :) – chelmertz

+0

如果我要更改一個文件的權限,或者(如您所注意的)如果我想指定複雜(和小文件集),我將使用chmod任務。可能是如果該文件集已經在Ant中被引用。 –