2013-11-07 3 views
1

Я спокойно отношусь к рубину, грабли, buildr и, конечно же, к FileUtils и FileList.Rake FileList-clean Directory, исключить подкаталог

У меня есть структура каталогов вроде этого:

+root 
|-dir1 
|+dir2 
||-dir not to delete 
||-dir3 
|-dir4 
… 

После чистой, все, что должно быть в запасе есть:

+root 
|+dir2 
||-dir not to delete 

Сейчас я пытаюсь что:

clean do 
    FileList[_(:root) + "/**/*"] 
    .exclude(_(:dir not to delete)) 
    .each do |file| 
    puts file 
    end 
end 

что »ставит«

root/dir1 
root/dir2 
root/dir/dir3 
root/dir4 

Но как я могу теперь перейти, чтобы удалить все, чтобы принять «dir», чтобы не удалять «в том числе внутри его родительского каталога?

ответ

3

там может быть умнее способы сделать это, но вы можете просто вычитаете соответствующие файлы/каталоги, как это:

все файлы в моем каталоге конфигурации:

FileList['config/**/**'] 
=> ["config/application.rb", "config/boot.rb", "config/compass.rb", "config/database.yml", "config/environment.rb", "config/environments", "config/environments/caching.rb", "config/environments/development.rb", "config/environments/production.rb", "config/environments/test.rb", "config/initializers", "config/initializers/formtastic.rb", "config/initializers/omniauth.rb", "config/initializers/secret_token.rb", "config/initializers/session_store.rb", "config/initializers/slim.rb", "config/initializers/typus.rb", "config/initializers/whitelabel.rb", "config/initializers/wrap_parameters.rb", "config/locales", "config/locales/de.base.yml", "config/locales/de.formtastic.yml", "config/locales/de.label.yml", "config/locales/de.yml", "config/locales/en.base.yml", "config/locales/en.formtastic.yml", "config/locales/en.label.yml", "config/locales/en.yml", "config/routes.rb", "config/typus", "config/typus/event.yml", "config/typus/highlight.yml", "config/typus/job.yml", "config/typus/location.yml", "config/typus/material.yml", "config/typus/topic.yml", "config/typus/user.yml", "config/whitelabel.yml"] 

удаление всех файлов, которые находятся в местный справочник:

FileList['config/**/**'] - FileList['config/**/locales/**'] 
=> ["config/application.rb", "config/boot.rb", "config/compass.rb", "config/database.yml", "config/environment.rb", "config/environments", "config/environments/caching.rb", "config/environments/development.rb", "config/environments/production.rb", "config/environments/test.rb", "config/initializers", "config/initializers/formtastic.rb", "config/initializers/omniauth.rb", "config/initializers/secret_token.rb", "config/initializers/session_store.rb", "config/initializers/slim.rb", "config/initializers/typus.rb", "config/initializers/whitelabel.rb", "config/initializers/wrap_parameters.rb", "config/locales", "config/routes.rb", "config/typus", "config/typus/event.yml", "config/typus/highlight.yml", "config/typus/job.yml", "config/typus/location.yml", "config/typus/material.yml", "config/typus/topic.yml", "config/typus/user.yml", "config/whitelabel.yml"] 
+0

, который действительно выглядит умнее! Я дам ему попробовать! – philipp

Смежные вопросы