是否可以制作匹配当前目录和所有子目录中的文件的glob?

问题描述 投票:1回答:4

对于此目录结构:

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

3 directories, 5 files

glob会匹配:

firstlevel.rb 
lib/secondlevel.rb 
lib/models/thirdlevel.rb
lib/models/foo/fourthlevel.rb
shell glob
4个回答
4
投票

抱歉,如果我错过了问题的真正意义,但是,如果我使用sh / bash / etc,那么我可能会使用find来完成这项工作:

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

从脚本中使用时,Globs可能会有点讨厌,而且发现更灵活。


2
投票

在zsh,**/*.rb工作


1
投票

在Ruby本身:

Dir.glob('**/*.rb') perhaps?

0
投票

看起来无法从bash完成

如果你使用zsh然后

ls **/*.rb

会产生正确的结果。

否则你可以劫持ruby解释器(可能还有其他语言的解释器)

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

感谢Chris和Gaius的回答。

© www.soinside.com 2019 - 2024. All rights reserved.