假设我在app
目录中有以下文件列表:
$ tree app
app
└── lib
├── 3682_garbage.rb
├── 2639_grey.rb
├── 2311_blue.rb
├── 8276_garbage.rb
└── 3672_garbage.rb
如何在此目录中删除garbage
匹配的所有文件?之后,目录应如下所示:
app
└── lib
├── 2639_grey.rb
└── 2311_blue.rb
如何以相反的方式执行删除,即文件名不包含garbage
?
app
└── lib
├── 3682_garbage.rb
├── 8276_garbage.rb
└── 3672_garbage.rb
我知道在这种情况下可以使用Dir.glob
方法,但我不知道如何。
答案 0 :(得分:1)
使用Dir.glob
Dir.glob("*garbage.*")
#=> ["3682_garbage.rb", "8276_garbage.rb", "3672_garbage.rb"]
要选择与条件不匹配的文件,只需使用Array#-方法从所有文件中减去匹配的文件。
Dir.glob("*") - Dir.glob("*garbage.*")
#=> ["2639_grey.rb", "2311_blue.rb"]