10
Giả sử một cấu trúc thư mục của:của Ruby 1.9.3 Dir.glob lạ hành vi phù hợp đệ quy
a/b/c/d/e/f/g/h
Tôi cố gắng để tìm 'h' qua:
Dir.glob('a/**/f/g/h')
Tuy nhiên điều này không hoạt động. Bất kỳ ý tưởng?
Bạn có thể thử các trường hợp thử nghiệm dưới đây:
$ /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**
Tôi càng thâm nhập vào này, tôi càng nghĩ rằng nó có thể là một lỗi đáng báo cáo thượng nguồn. Có vẻ như trận đấu không thành công khi có nhiều hơn hai phần tử đường dẫn. Câu trả lời của tôi dưới đây giải quyết các hành vi hiện tại, nhưng nó có thể * là * một lỗi trong Dir # glob, vì File # fnmatch hoạt động chính xác. –
Tôi nghĩ rằng đó cũng là một lỗi. Trên REE 1.8.7, lệnh cuối cùng có đầu ra như mong đợi. –
Liên kết báo cáo lỗi: http://bugs.ruby-lang.org/issues/6977 –