使用Chef删除一些但不是所有子目录

时间:2015-05-18 12:12:18

标签: ruby chef

我在父目录中有几个子目录需要使用我的cookbook删除,但是我需要保留许多其他子目录。是否有一种编程方式我可以实现删除某些子目录,或者我是否必须手动指定我希望删除的每个子目录;

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

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式指定所需的模式,并删除与该模式匹配的所有(子)目录。

类似的东西:

Dir

有关如何使用 if (null != sessionFactory) { Session s = currentSession.get(); if ((null == s) || !s.isOpen()) { s = sessionFactory.openSession(); currentSession.set(s); } else { try { HibernateWork hibernateWork = new HibernateWork("SELECT 1 FROM DUAL"); s.doWork(hibernateWork); } catch (Exception e) { s = sessionFactory.openSession(); currentSession.set(s); } } return s; } 匹配所需文件的详细信息,请参阅look-around

Ruby docs on Dir也可能有用。

答案 1 :(得分: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