2015-05-18 46 views
3

我有一個父目錄內有幾個子目錄,需要使用我的食譜來刪除,但還有很多其他的子目錄需要保留。有沒有一種編程方式,我可以實現某些子目錄的刪除,還是我必須手動指定每個我希望刪除的目錄;使用廚師刪除一些但不是所有的子目錄

directory "/var/lib/foo" do 
    action :delete 
end 

回答

1

您可以使用正則表達式指定所需的模式,並刪除與該模式匹配的所有(子)目錄。

類似的東西:

Dir["/main/{sub1,sub2,sub3}"].each do |dir| 
    file ::File.expand_path(dir) do 
    action :delete 
    end 
end 

有關如何符合使用Dir所需文件的詳細信息,請參閱Ruby docs on Dir

This related SO question也可能有用。

0

這完全取決於您如何決定要保留什麼以及如何擺脫。假設你有目錄刪除列表....

%w(/this/path /this/otherpath /this/one/too).each do |dir| 
    file ::File.expand_path(dir) do 
    action :delete 
    end 
end 

parent = '/some/long/path' 
%w(child other/child and/this/one) do |child| 
    file ::File.join(parent, child) do 
    action :delete 
    end 
end