Puppet

如何使用 Puppet 刪除目錄中除某些 glob 之外的所有文件?

  • February 28, 2015

不幸的是,拼寫檢查器沒有針對地區打包,所以在安裝了英語、法語和德語詞典後,我得到了這個龐大的集合:

$ 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

引用自:https://unix.stackexchange.com/questions/187355