2015-05-18 13 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