我有一个父目录内有几个子目录,需要使用我的食谱来删除,但还有很多其他的子目录需要保留。有没有一种编程方式,我可以实现某些子目录的删除,还是我必须手动指定每个我希望删除的目录;使用厨师删除一些但不是所有的子目录
directory "/var/lib/foo" do
action :delete
end
我有一个父目录内有几个子目录,需要使用我的食谱来删除,但还有很多其他的子目录需要保留。有没有一种编程方式,我可以实现某些子目录的删除,还是我必须手动指定每个我希望删除的目录;使用厨师删除一些但不是所有的子目录
directory "/var/lib/foo" do
action :delete
end
您可以使用正则表达式指定所需的模式,并删除与该模式匹配的所有(子)目录。
类似的东西:
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也可能有用。
这完全取决于您如何决定要保留什么以及如何摆脱。假设你有目录删除列表....
%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