[Ruby][shell] **/ と */ の違い。
そうそう先日RSpec + RCov でテストしたい。 その2 - 日々此妄想を書いててちょっとハマったのでメモしとく
最近よく見掛ける **/ なんだこれ?
- lib/**/*.rb とか
- app/**/*.rb とか
何か再起的に下りてってくれる気がするんだけど。。。
$ ls ~/work/**/*.rb |wc -l 54 $ ls ~/work/*/*.rb |wc -l 54
結果は一緒。
しかも。
$ ls doc/*/* /bin/ls: doc/*/*: No such file or directory $ ls doc/**/* /bin/ls: doc/**/*: No such file or directory
なんか期待してるのと違うんだよなぁ。。。
こんな動きだっけ???
しかも * とか ** って google とかで検索しにくい。
さんざん調べた(つもり)だけどやっぱりわからん。
で、ひょっとして。。。。 と思ってみたものは Ruby の Dir.glob のリファレス
あう。shellの機能じゃなかったのか。。。Rubyの機能か。。。どうりで最近よくみるわけだ。。。
一応確認
$ irb irb(main):001:0> Dir.glob('doc/*/*') => [] irb(main):002:0> Dir.glob('doc/**/*') => ["doc/README_FOR_APP"] irb(main):003:0>
満足した。