使用chef ruby​​删除目录中的多个文件

时间:2016-12-26 12:03:07

标签: ruby chef cookbook

我一直在寻找一个厨师ruby代码来删除与文件名字符串匹配的目录中的多个文件

让我们说如果我的D盘包含文件名 - eula1.txt, eula2.txt, res1.dll, res2.dll, pvn1.txt, pvn2.txt

在上面的例子中,我需要一个厨师ruby代码,我可以在cookbook中包含删除所有出现的以eula *和res *开头的文件,即它应该删除目录中的4个文件

我的最终输出应该只包含2个文件 - 目录中的pvn1.txt,pvn2.txt。

2 个答案:

答案 0 :(得分:2)

您最好的选择是使用execute资源,例如:

execute 'del eula* res*'

虽然可以通过直接删除文件来执行此操作,但它更复杂,可能超出了您的范围。

答案 1 :(得分:1)

我可以使用'FileUtils'删除匹配条件的文件。由于FileUtils是纯ruby命令,我必须将此代码嵌入到我的厨师食谱中的ruby_block中。

以下声明对我有用

ruby_block "Deleting the eula*,install* files...." do    
  block do    
    FileUtils.rm Dir["path/to/folder/eula*","path/to/folder/install*"]    
  end
end