10
假設的目錄結構:的Ruby 1.9.3 Dir.glob奇怪的遞歸匹配行爲
a/b/c/d/e/f/g/h
我試圖通過尋找 'H':
Dir.glob('a/**/f/g/h')
但是這是行不通的。有任何想法嗎?
你可以試試下面的測試案例:
$ /usr/bin/ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
$ mkdir -p a/b/c/d/e/f/g/h
$ ruby -e "puts Dir.glob('a/**/*')"
a/b
a/b/c
a/b/c/d
a/b/c/d/e
a/b/c/d/e/f
a/b/c/d/e/f/g
a/b/c/d/e/f/g/h
$ ruby -e "puts Dir.glob('a/**/h')"
a/b/c/d/e/f/g/h
$ ruby -e "puts Dir.glob('a/**/g/h')"
a/b/c/d/e/f/g/h
$ ruby -e "puts Dir.glob('a/**/f/g/h')"
**nothing**
我越挖成這樣,我越覺得它可能是上游的報告值得一錯誤。看起來,只要有兩個以上的追蹤路徑元素,比賽就會失敗。我在下面的回答解決了當前的行爲,但它可能*是* Dir#glob中的錯誤,因爲File#fnmatch正常工作。 –
我認爲這也是一個錯誤。在REE 1.8.7上,最後一個命令的輸出如預期。 –
錯誤報告鏈接:http://bugs.ruby-lang.org/issues/6977 –