2011-08-03 4 views
10

Tôi muốn chmod đệ quy trong build.xml tôi và mượn sau từ this post:Chmod đệ quy của Ant có thể cạnh tranh với exec về mặt tốc độ không?

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

Đó là không ngờ chậm từ thư mục đó là sâu và bao gồm một số lượng lớn các tập tin.

này hoạt động tốt hơn nhiều & nhanh hơn:

<exec executable="chmod" dir="${basedir}/foo" failonerror="true"> 
    <arg line="-R 0755 ." /> 
</exec> 
  • Có bất kỳ nhược điểm của việc sử dụng exec? Tốc độ là tầm quan trọng.
  • Nếu có; Tôi có đang sử dụng chmod không chính xác không?

Trả lời

7

Exec nhanh hơn vì nhiệm vụ chmod đang thu thập tất cả các tệp và sau đó chmod'ng chúng. Với exec nó là một hoạt động. "Nhược điểm" duy nhất để sử dụng exec là nó liên kết bạn với UNIX/Linux. Tôi sử dụng dấu ngoặc kép vì tác vụ chmod không chạy trên Windows nên đây là điểm moot.

Bạn đang sử dụng cả hai cách chính xác và thực hiện với exec.

+0

Tôi đọc lại trang người đàn ông và tôi phải nói rằng dường như không có lý do hợp lệ nào để sử dụng 'chmod' ngoài việc cú pháp dễ dàng loại trừ các tập tin khỏi tập tin - nhưng có thể dễ dàng giải quyết trong 'exec'. Bạn sẽ sử dụng 'chmod' cho bất cứ điều gì? :) – chelmertz

+0

Tôi sẽ sử dụng tác vụ chmod nếu tôi đã thay đổi quyền trên một tệp hoặc (như bạn đã lưu ý) nếu tôi muốn chỉ định một tệp phức tạp (và tệp nhỏ). Có thể nếu tập tin đó đã được đề cập đến cho một cái gì đó khác trong Ant. –