2012-09-03 14 views
10

की एक निर्देशिका संरचना मान लिया जाये। कोई विचार?रूबी 1.9.3 Dir.glob अजीब पुनरावर्ती मैच व्यवहार

$ /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** 
+3

अधिक मैं इस में खुदाई, और अधिक मैं इसे नदी के ऊपर रिपोर्टिंग लायक एक बग हो सकता है लगता है। ऐसा लगता है कि जब भी दो से अधिक पिछड़े पथ तत्व होते हैं तो मैच विफल रहता है। नीचे मेरा जवाब वर्तमान व्यवहार को संबोधित करता है, लेकिन संभवतः यह * # गड़बड़ में एक बग है, क्योंकि फ़ाइल # fnmatch सही तरीके से काम करता है। –

+0

मुझे लगता है कि यह भी एक बग है। आरईई 1.8.7 पर, अंतिम कमांड के उत्पादन के रूप में उत्पादन है। –

+0

बग रिपोर्ट लिंक: http://bugs.ruby-lang.org/issues/6977 –

उत्तर

2

यह एक बग है और changeset r36905 के साथ हल किया गया है:

आप नीचे दिए गए परीक्षण मामले की कोशिश कर सकते हैं। वाह!

https://bugs.ruby-lang.org/issues/6977

संबंधित मुद्दे