Puppet
如何使用 Puppet 刪除目錄中除某些 glob 之外的所有文件?
不幸的是,拼寫檢查器沒有針對地區打包,所以在安裝了英語、法語和德語詞典後,我得到了這個龐大的集合:
$ find /usr/share/myspell/dicts/ -name '*.dic' | cut -d '/' -f 6 | cut -d '.' -f 1 | sort de_AT de_BE de_CH de_DE de_LI de_LU en_AG en_AU en_BS en_BW en_BZ en_CA en_DK en_GB en_GH en_HK en_IE en_IN en_JM en_NA en_NG en_NZ en_PH en_SG en_TT en_US en_ZA en_ZW fr_BE fr_CA fr_CH fr_FR fr_LU
在丹麥說英語,它甚至不是官方語言?無論如何,我想保留
de_CH*
,de_DE*
,en_GB*
,en_US*
和fr_FR*
, 並刪除所有其他文件。有沒有辦法使用 Puppet 實現這一目標?
實際上,看起來這是一個已解決的問題。解決方案:
class spell_checker { package { [ 'aspell-de', 'aspell-en', 'aspell-fr', 'hunspell-de', 'hunspell-en', 'hunspell-fr', ]: ensure => latest, }-> file{ [ '/usr/share/hunspell', '/usr/share/myspell/dicts', ]: recurse => true, purge => true, ignore => [ 'de_CH.*', 'de_DE.*', 'en_GB.*', 'en_US.*', 'fr_FR.*', ], } }
最終結果:
$ find /usr/share/myspell/dicts/ -name '*.dic' | cut -d '/' -f 6 | cut -d '.' -f 1 | sort de_CH de_DE en_GB en_US fr_FR