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