1

このディレクトリ構造の場合:

.
|-- README.txt
|-- firstlevel.rb
`-- lib
    |-- models
    |   |-- foo
    |   |   `-- fourthlevel.rb
    |   `-- thirdlevel.rb
    `-- secondlevel.rb

3 directories, 5 files

グロブは一致します:

firstlevel.rb 
lib/secondlevel.rb 
lib/models/thirdlevel.rb
lib/models/foo/fourthlevel.rb
4

4 に答える 4

4

質問の本当のポイントを逃した場合はお詫びしますが、sh/bash/etc. を使用していた場合は、おそらくfindを使用して作業を行います。

find . -name '*.rb' -type f

グロブは、スクリプト内から使用すると少し厄介になる可能性がありますが、findはより柔軟です。

于 2008-09-04T20:01:53.510 に答える
2

zshでは、**/*.rb動作します

于 2008-09-04T19:01:42.860 に答える
1

Ruby自体では:

Dir.glob('**/*.rb') perhaps?
于 2008-09-04T18:59:40.383 に答える
0

からはできないようです。bash

zsh次に使用する場合

ls **/*.rb

正しい結果が得られます。

rubyそうしないと、インタープリター (およびおそらく他の言語のインタープリター) を乗っ取ることができます。

ruby -e "puts Dir.glob('**/*.rb')"

Chris と Gaius の回答に感謝します。

于 2008-09-04T19:38:36.173 に答える