厨师:如何递归删除所有文件,同时保持某些文件

问题描述:

我有一个文件夹结构是这样的:厨师:如何递归删除所有文件,同时保持某些文件

/app 
    /uploads 
     1.pdf 
     2.pdf 
     /2015 
     /2016 
     /2017 
     ...... 
    /requirements 
    /tests 
    manage.py 
    ...... 

我用递归删除app字典。现在我想保留所有折叠和文件在uploads,例如。 /2015/2016/2016/oct.pdf。此外,删除1.pdf2.pdf

# remove the code folder if exists 
directory node['conf-cookbook']['app_dir'] do 
    recursive true 
    action :delete 
    only_if { ::File.directory?("#{ PATH }") } 
end 

我该如何构建卫兵来实现我的目标?

这不是目录资源可以做的事情。 Guard条款控制整个资源是激活还是不激活,它们在会聚期间不是排队项否决权。您需要制作自定义资源,或者只是使用类似execute "find #{node['conf-cookbook']['app_dir']} -somefilter -delete"的东西,而不在意它不是幂等的。